Facebook oauth对话框没有调用回调函数

时间:2011-11-04 17:02:26

标签: facebook authentication oauth callback fb.ui

似乎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 :(得分:0)

离开* redirect_uri *和* response_type *参数在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);

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