2013-03-31 4 views
5

Вход в систему работает, но он запрашивает только основные разрешения, и при отмене или завершении диалога не запускается предупреждение.FB.login() не запрашивает данные разрешения

window.fbAsyncInit = function() { 

    // init the FB JS SDK 
    FB.init({ 
     appId  : 'XXX', // App ID from the App Dashboard 
     channelUrl : 'XXX', // Channel File for x-domain communication 
     cookie  : true, // set sessions cookies to allow your server to access the session? 
     xfbml  : true, // parse XFBML tags on this page? 
     frictionlessRequests: true, 
     oauth: true 
    }); 

    FB.login(function(response) { 
     if (response.authResponse) { 
     alert("ok"); 
     } else { 
     alert("canceled"); 
     } 
    }, {scope:'publish_actions,publish_stream'}); 

    }; 

ответ

9

Вы используете fb: login-button? Если да, попробовали ли вы добавить туда разрешения, а не в FB.login()? Так что это будет выглядеть примерно так:

<fb:login-button scope="publish_actions,publish_stream"></fb:login-button> 
+2

Этот ответ должен быть отмечен как правильный ответ. Это решило мою проблему. Метод 'FB.Login' не отправляет параметр' scope' при использовании кнопки 'fb: login-button'. Кажется, ошибка библиотеки facebook. –

+1

Это заняло много времени, чтобы найти! Кто-нибудь сообщал об этом в facebook как об ошибке? При использовании 'XFBML',' {scope: ''} 'полностью игнорируется. –

0

Я не знаю, если вы будете использовать OG действия, если нет, то вы должны прочитать о publish_actions/publish_stream: http://developers.facebook.com/blog/post/2012/04/25/streamlining-publish_stream-and-publish_actions-permissions/

Для вашей проблемы о предупреждениях, попытайтесь удалить OAuth вар.

+0

Пробовал, не работал. 'FB.login (function (response) {}, {scope: 'publish_actions'});' также не работает. – Chris

+0

Он работает, когда я помещаю его непосредственно в onlick-событие: 'onclick = 'FB.login (function (response) {}, {scope: 'publish_actions'}); '' – Chris

+0

Я вижу, в любом случае не рекомендуется запускать FB.login() автоматически и на всех страницах. Вот небольшой пример, который должен вам помочь: http://facebook.stackoverflow.com/a/15720747/2212966 –

2

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

+0

Спасибо! Я только начинаю. Я не понял, почему запросы с дополнительными разрешениями обрабатываются с помощью API-интерфейсов Graph API, но не в моем приложении. Ваш ответ заставил меня отклеиться. Теперь имеет смысл. –

Смежные вопросы