Facebook C # SDK: OAuth 2 в браузерном приложении Silverlight 4 - PullRequest
0 голосов
/ 09 июня 2011

Я совершенно новичок в процессе аутентификации с OAuth (я точно пытаюсь использовать OAuth 2), и пример, которому я следую, чтобы аутентифицироваться с помощью последней версии Facebook SDK, говорит, что этот фрагмент кода должен работать для Среды C # .NET (http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-first-Facebook-Application.aspx):

webBrowser.Navigate(loginUrl);

private void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    FacebookOAuthResult result;
    if (FacebookOAuthResult.TryParse(e.Url, out result))
    {
       if (result.IsSuccess)         
       {
         var accesstoken = result.AccessToken;          
       }

       else
       {
         var errorDescription = result.ErrorDescription;
         var errorReason = result.ErrorReason;
       }
    }
} 

Поскольку я программирую приложение SL для браузера, элемент управления WebBrowser ничего не отображает, поэтому я также не могу уловить ответ, как я могу сделать что-то эквивалентное этому в моем приложении? Или как я могу завершить процесс аутентификации, если нет эквивалентного способа? Спасибо!

1 Ответ

0 голосов
/ 09 июня 2011

Предложение: почему бы вам не попытаться проанализировать ответ WebResponse при его получении, а не прослушивать событие?

Я использую OAuth Facebook в своем веб-приложении.Это не что иное, как серия сообщений URL с правильными параметрами.

Взгляните на этот пост: Авторизация через Facebook Проблема после выхода из системы (Все детали есть в ответе и комментариях)

Вот краткие шаги:

  1. Вызовите URL-адрес диалога OAuth Facebook со своим AppId, URL-адресом для перенаправления и разрешениями.Тип запроса должен быть «code»
  2. Когда пользователь входит в систему и авторизует ваше приложение, они будут перенаправлены на URL перенаправления с параметром строки запроса «code».
  3. Возьмите значение параметра code и сделайте еще один вызов Facebook, чтобы получить токен.
  4. Используйте этот токен для совершения вызовов от имени пользователя.
...