Подтвердить что ты не робот

Facebook (FB.login) не запрашивает мои разрешения

поэтому после обновления до 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();". Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

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

... OnClick = "FB.login(handleLoginResponse, {perms: 'email, manage_pages, user_birthday'}); return false;"...

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

Ответ 2

Я вижу что-то, связанное с этим с 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 для меня...

Ответ 3

Моя проблема была похожа на вас. Я проверил все мои 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>

Ответ 4

Я думаю, это потому, что вы вызываете 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.');
    });
}

Ответ 5

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

Ответ 6

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

< fb: login-button show-faces = "true" width = "200" max-rows = "1" data-scope = "email" > </FB: Логин кнопки >