1

FB.ui method='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 调用。

4

1 回答 1

0

离开 *redirect_uri* 和 *response_type* 参数在画布/页面应用程序中解决了这个问题:

        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);

另一方面,如果您的应用程序不打算在画布/页面中运行,那么您的回调函数确实不会再被调用,但您可以直接在 *redirect_uri* 回调页面中处理 oauth 令牌.

于 2012-03-30T10:08:16.337 回答