Как запросить разрешение publish_stream в Chrome - PullRequest
1 голос
/ 28 декабря 2011

Как запросить разрешение на Facebook?

Chrome блокирует всплывающее окно и выдает много предупреждений при использовании FB.login

function askPermission() {
    FB.login( function(response) {
        if(response.authResponse) {
            // Do what I want to do
        }
    }, {scope:'publish_stream'});
}

Так что вместо этого я попробовал это из Как установить диалоговое окно разрешения для сообщения на стене :

function askPermission(appid, redirect_uri, response_type, scope, callback) {
     // Redirect the user back after authorization
     var path = 'https://www.facebook.com/dialog/oauth?';
     var queryParams = ['client_id='+appid, 'redirect_uri='+encodeURI(redirect_uri), 'response_type='+response_type, 'scope='+scope];
     var query = queryParams.join('&');
     var url = path + query;
     top.location.href = url;
}

, но это не сработало.Я получил сообщение об ошибке, что-то вроде

«Произошла ошибка в YourApp. Повторите попытку позже».

РЕДАКТИРОВАТЬ: Chrome по-прежнему выдавал много «Небезопасная попытка JavaScript для доступа к фрейму с URL»даже когда я пытался:

<input type="button" value="Convidar amigos" class="verde" onclick="FB.login(function(response){ if(response.authResponse){post();} }, {scope:'email,publish_stream'});"/>

1 Ответ

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

Вы должны вызывать FB.login только при взаимодействии с пользователем (нажмите, отправить и т. Д.), Иначе он будет заблокирован в большинстве браузеров.Вы видите ошибки, потому что JS-SDK не может взаимодействовать с заблокированным окном.

...