似乎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调用过。
答案 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令牌*回调页面。