Установить Javascript API accessToken - PullRequest
6 голосов
/ 28 января 2012

Я занимаюсь разработкой приложения для Facebook. У меня есть поток OAuth на стороне сервера, который позволяет мне аутентифицировать пользователя, не требуя от него нажатия какой-либо кнопки. Следовательно, я получаю его accessToken, если он содержит другую информацию, и использую их на серверной стороне , прежде чем генерировать страницу.

В моем приложении мне теперь нужно использовать API Javascript, который технически может использовать тот же Oauth-токен.

Можно ли создать экземпляр объекта JavaScript FB с заданным токеном Oauth?

Я знаю, что можно сделать противоположное значение, выполнив процесс Oauth на стороне клиента и поделиться ключом Oauth со стороной сервера через cookie, но, на мой взгляд, у этого есть два недостатка: Во-первых, это означает наличие кнопки «Войти», которая для меня не очень удобна для приложения в Facebook. _ Кроме того, я не понимаю, как должен вести себя этот процесс Oauth, если мое приложение состоит из двух разных страниц. Переход с одной страницы на другую полностью перезагружает JavaScript. Будет ли этот процесс Oauth (с всплывающим окном и т. Д.) Выполняться при каждой перезагрузке страницы?

Спасибо за вашу помощь!

1 Ответ

9 голосов
/ 28 января 2012

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

FB.init({appId: 'XXXXXXXXXXXXXX', xfbml: true, cookie: true, oauth: true});
FB.getLoginStatus(function(response) {

  if (response.authResponse) {
    token = response.authResponse.accessToken;
    FB.api('/me', function(response) {
        console.log(response);
         // do something here they are logged in and have given you perms   
    });
  } else {
    // no user session available, someone you dont know
  }
});

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

...