Facebook (FB.login) не запрашивает мои разрешения - PullRequest
11 голосов
/ 09 августа 2011

так что после обновления до php 3.0 sdk и что нет, моя функция FB.login() больше не запрашивает разрешения, которые я установил для запроса.Кто-нибудь еще получил это?Вот код для вас:

window.fbAsyncInit = function() {
  FB.init({
    appId: 'xxx',
    status: true,
    cookie: true,
    xfbml: true,
    oauth : true // enables OAuth 2.0
  });
  // whenever the user logs in, we refresh the page
  //FB.Event.subscribe('auth.login', function() {
  //  window.location.reload();
  //});      
};


FB.login(function(response) {
  if (response.authResponse) {
    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me', function(response) {
      console.log('Good to see you, ' + response.name + '.');
      FB.logout(function(response) {
        console.log('Logged out.');
      });
    });
  } else {
    console.log('User cancelled login or did not fully authorize.');
  }
}, {scope:'read_stream,publish_stream,offline_access'});

Я пытаюсь получить к нему доступ через onClick="FB.login();".Кто-нибудь может помочь?

Ответы [ 6 ]

5 голосов
/ 16 августа 2011

Проверка источника JS SDK Я обнаружил, что они все еще используют perms , а не scope , как это было задокументировано.Это работает для меня:

... onclick = "FB.login (handleLoginResponse, {perms: 'email, manage_pages, user_birthday'}); вернуть false;" ...

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

4 голосов
/ 22 августа 2011

Я вижу что-то связанное с этим с JS SDK. При настройке oauth=true функция

FB.login(function (response) {
    if (response.authResponse) {
        console.log('Welcome!  Fetching your information.... ');
    } else {
    console.log('User cancelled login or did not fully authorize.');
}
}, { scope: 'email,publish_stream,user_birthday,user_location' });

Правильно запрашивает расширенные разрешения, но использование <fb:login-button> FBXML с scope="email,publish_stream,user_birthday,user_location" не делает.

Для меня это похоже на ошибку Facebook ...

2 голосов
/ 10 декабря 2013

Моя проблема была похожа на вас.Я проверил весь свой javascript, чтобы убедиться, что мой объем был хорошим в определении FB.login.Наконец, я понял, что у меня есть кнопка Facebook в моем HTML.

<form class="form-signin"><fb:login-button size="large">Facebook</fb:login-button></form>

Когда я также определил область действия в кнопке FB, Facebook попросил меня правильно принять новые разрешения, если я изменил область действия

<form class="form-signin"><fb:login-button size="large" scope="<?php print($sFacebookScope);?>">Facebook</fb:login-button></form>
1 голос
/ 13 марта 2012

Я думаю, это потому, что вы звоните FB.logout в блоке FB.login.

Фактически, как только они входят в систему, они выходят из системы.

Так отделите это так:

// CALLED WHEN USER LOGS IN
function userLogin() {
    FB.login(function(response) {
        if (response.authResponse) {
            console.log('Welcome!  Fetching your information.... ');
            FB.api('/me', function(response) {
                console.log('Good to see you, ' + response.name + '.');
            });
        } else {
            console.log('User cancelled login or did not fully authorize.');
        }
    }, {scope:'read_stream,publish_stream,offline_access'});
}

// CALLED WHEN USER LOGS OUT
function userLogout() {
    FB.logout(function(response) {
        console.log('Logged out.');
    });
}
0 голосов
/ 18 февраля 2014

Единственное решение, которое сработало для меня, - это поместить разрешения в тег кнопки входа в систему следующим образом:

<<i> fb: кнопка входа в систему show-face = "true" width = "200" max-rows = "1" data-scope = "email"> </ fb: кнопка входа в систему>

0 голосов
/ 14 февраля 2013

У меня была точно такая же проблема, пока я не понял, что это проблема кеширования браузера / фейсбука. Убедитесь, что у вас есть последний код в вашем веб-пространстве и протестируйте свое приложение в новом браузере, если это может быть решением вашей проблемы.

...