Как обрабатывать запросы приложений Facebook? - PullRequest
7 голосов
/ 12 сентября 2011

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

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

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

Ответы [ 6 ]

2 голосов
/ 11 октября 2011

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

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

1 голос
/ 14 сентября 2011

В случае, если вы используете 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");
    }
}
0 голосов
/ 16 сентября 2011

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

0 голосов
/ 14 сентября 2011

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

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

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

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

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

0 голосов
/ 14 сентября 2011

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

0 голосов
/ 13 сентября 2011

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

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

...