Диалоговое окно Facebook не вызывает функцию обратного вызова - PullRequest
1 голос
/ 04 ноября 2011

Похоже, что метод FB.ui = 'oauth' прекратил вызывать нашу функцию обратного вызова на рабочем сайте. Вот наш код:

FB.ui(
        {
            method: 'oauth',
            client_id: '[outClienID]',
            redirect_uri: '[validRedirect_uri]',
            scope:'email, publish_stream',
            response_type: 'token',
            display: 'popup'
        },
        function(response) {
            FB.getLoginStatus(checkFBConnect, true);
        })

Я попытался заменить FB.getLoginStatus простым предупреждением, и оно никогда не вызывалось. Когда я вызываю FB.getLoginStatus (checkFBConnect, true); Вручную из консоли отладки процесс работает как задумано. Это как наша функция (ответ) никогда не вызывается через Facebook.

1 Ответ

0 голосов
/ 30 марта 2012

Параметр out * redirect_uri * и * response_type * out решает эту проблему в приложениях canvas / pages:

        FB.ui({method: 'oauth',
        client_id: fb_app_id,
        state: new Date().getTime().toString(),
        /*
        redirect_uri: location.protocol + '//' + location.host + '/' + app_folder + '/oauth',
        response_type: 'token',
        */
        scope: 'email,publish_actions'
    }, callback);

С другой стороны, если ваше приложение не предназначено для запуска на canvas / page,тогда верно, что ваша функция обратного вызова больше не будет вызываться, но вы можете обработать токен oauth непосредственно на странице обратного вызова * redirect_uri *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...