FB.ui permissions.request не работает должным образом - PullRequest
1 голос
/ 27 декабря 2011

Это стало действительно раздражающим, когда сегодня обнаружены новые ошибки.

По сути, я пытаюсь сделать это;показать диалоговое окно Facebook и получить необходимые разрешения для приложения и запустить функцию обратного вызова js.Но не может достичь этой простой и самой важной части приложения.

Во-первых, давайте инициализируем это:

<div id="fb-root"></div>
<script type="text/javascript">

    window.fbAsyncInit = function()
    {

        FB.init({appId: '135814169854494', status: true, cookie: true, xfbml: true, oauth: true });

        FB.ui({method: "permissions.request", "perms": 'publish_stream,user_about_me,email,user_birthday,user_likes'} , function(response) { console.log(response); });

    };
    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
        '//connect.facebook.net/<?=$__FBLocal?>/all.js';
        document.getElementById('fb-root').appendChild(e);
    }());
</script>

enter image description here

Теперь всплывающее окно Javascript отображается, ноесли вы нажмете Хорошо, перейдите к приложению , приложение не предоставит разрешения или даже всплывающее окно не исчезнет.Ничего не меняется! странно

Если вы отключите Расширенный диалог авторизации в разделе «Дополнительные параметры приложения» в разделе «Разработчики Facebook»,

enter image description here

PopUpИзменения стиля:

enter image description here

Когда вы нажимаете кнопку Разрешить, выдается ошибка JavaScript: FB.Auth.setSession несовместим с OAuth2.

Это действительно распространенная ошибка.Есть несколько советов, чтобы не получить эту ошибку, которую я смог найти, но все они не работают.(Например, удалите все расширения для all.js url, который у меня отсутствует, или измените параметр oauth в FB.init, больше ничего не решается)

Итак, единственный обходной путь - к сожалению,- встраивание диалога разрешений в страницу путем перенаправления.Если кто-то может получить разрешение JS SDK, пожалуйста, дайте мне знать.Действительно застрял с отсутствием документации на страницах Graph API.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2011

Я почти уверен, что permissions.request устарела. Можете ли вы попробовать использовать method: oauth вместо permissions.request? Кроме того, параметр perms должен измениться на scope. Смотри https://developers.facebook.com/docs/reference/dialogs/oauth/

0 голосов
/ 28 декабря 2011

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

...