Как обрабатывать запросы приложений Facebook?


Я работаю над приложением Facebook и предлагаю пользователю пригласить своего друга в приложение с помощью C# SDK. как показано в документации Facebook

Моя проблема заключается в том, что когда друг пользователя получает запрос приложения и нажимает Accept, он не показывает application permission request page.

Нужно ли предварительно выполнить какой-либо дополнительный шаг, чтобы перенаправить пользователя на application permission request page?

6 7

6 ответов:

Я нашел решение

Я начинаю запрашивать разрешение на странице холста приложения и, если пользователь принимает, перенаправляю на ту же страницу со строкой запроса. не идеальное решение, но оно отлично работает

В случае, если вы используете http://facebooksdk.codeplex.com/ с помощью MVC3 на контроллере главной страницы приложения вы должны обеспечить перенаправление для неавторизованных пользователей:

var fbWebContext = FacebookWebContext.Current;
if (fbWebContext.IsAuthorized() && fbWebContext.UserId > 0)
{
    try
    {
        var fb = new FacebookWebClient(fbWebContext);
        dynamic result = fb.Get("/me");
    }
    catch (FacebookOAuthException)
    {
        var redirectString = string.Format("https://graph.facebook.com/oauth/authorize?client_id={0}&redirect_uri={1}&type=user_agent&display=page&scope={2}",
                                 Facebook.FacebookApplication.Current.AppId,
                                 FacebookWebContext.Current.Settings.CanvasPage,
                                 "email, publish_actions"
                             );
        Response.Redirect("redirectString");
    }
}

Вам нужно попросить у пользователя разрешение, как показано на http://developers.facebook.com/docs/reference/dialogs/oauth/ . Как вы получили разрешения первого пользователя, который приглашает друга? Вы можете перенаправить его на эту страницу или на страницу, которая обрабатывает запросы приложений кликов можете проверить разрешения приложений. Если пользователь не дает разрешения, вы легко попросите его об этом.

Вы всегда должны проверять разрешения, потому что даже пользователь уже использует ваша заявка может отозвать их.

По умолчанию принятие запроса приложения Facebook перенаправляет пользователя на главную страницу приложения. Если приложение требует разрешения Facebook для просмотра главной страницы, вы должны проверить, что все посетители приняли ваши разрешения, и перенаправить их в диалоговое окно OAuth permissions, если они этого не сделали. Обратите внимание, что в документации Facebook предлагается удалить принятый запрос после того, как пользователь посетит ваше приложение, с помощью параметра request_ids, который отправляется в строке запроса.

Что вы подразумеваете под страница запроса разрешения приложения ? Это тот случай, когда пользователь разрешает стороннему приложению получить доступ к его данным на facebook?

Я согласен с другим ответом. После того, как пользователь нажимает значок уведомления о запросе приложения в своем аккаунте facebook, он перенаправляется на страницу приложения canvas, запрос включает список request_ids, сгенерированных вашим приложением

В вашем приложении, после прочтения facebook request_ids, вы можете запросить facebook о полученных request_ids, а затем решить, что делать с этой информацией, вы можете передать дополнительный параметр data, чтобы предоставить дополнительную информацию о том, как был сгенерирован запрос приложения.

Наконец, вы можете перенаправить пользователя на любую страницу, которую вы хотите, основываясь на полученной информации.

Надеюсь, это поможет

Вы должны проверить, получает ли пользователь доступ к вашему приложению из запроса... если параметр request_ids присутствует. Если это так, вы должны перенаправить пользователя на страницу, где будут запрошены разрешения и показан список невыполненных запросов!