Проверьте, авторизован ли пользователь Facebook - PullRequest
1 голос
/ 04 января 2012

Я создаю вспомогательный класс, который позволил бы мне управлять учетной записью Facebook в приложении Windows Form.Я использую Facebook C # SDK .Как предлагается в его документации, чтобы узнать, аутентифицирован ли пользователь, можно получить loginUrl

       var loginUrl = oauth.GetLoginUrl(parameters);

, а затем перейти к этому URL

webBrowser.Navigate(loginUrl);

Поскольку я нахожусь наВ конце приложения мне интересно, как можно написать вспомогательный класс, который будет возвращать true или false, чтобы показать, аутентифицирован ли пользователь или нет.Я хотел бы сделать что-то вроде:

public static  bool IsUserAunthenticated (string appId, string[] extendedPermissions)

Как можно написать эту функцию?Есть идеи?Помните, что я использую форму Windows на .net 4.0

1 Ответ

1 голос
/ 04 января 2012

при условии, что эта функция вызывается через некоторое время после

webBrowser.Navigate(loginURL)

Такое решение может работать:

при условии:

  • Пользователь уже авторизовал вашуapplication
  • 'facebookClient' - поле статического класса уже инициализировано

    public static bool isUserAuthenticated()  {
    try
    {
        facebookClient.Get("/me");
    
        //the lack of an exception thrown is a sign of success
        return true;
    }
    catch (FacebookOAuthException e)
    {
        //your access token used to initialize 'facebookClient' is invalid
        return false;
    } }
    

Некоторые общие замечания:

  • вы не показали никакого кода для обработки получения фактического токена доступа.Я предполагал, что вы оставили это для краткости.

  • , передавая 'appID' и 'extendedPermissions', означает, что этот метод будет использоваться для РЕГИСТРАЦИИ пользователя, а не для проверки, чтобы увидетьесли они уже были пользователем вашего приложения.

  • , относящиеся к вышеуказанному пункту, вы можете передать маркер доступа в качестве аргумента, чтобы вы могли инициализировать «facebookClient» внутрии выполните тест проверки подлинности.

Чтобы подвести итоги этого последнего маленького кусочка, если вы еще не знаете, вам нужно понять, что есть два различных этапа: получение токена доступа ииспользуя токен доступа.

...