我正在建立一个facebook连接应用程序,用于向用户的流发布内容。为此,我需要从用户那里获得扩展的publish_stream权限。我正在使用功能代码。
检查连接状态
<input type="button" onclick="statusSubmit('Permission to publish : ');" value="Check connection status" />
<script type="text/javascript">
function statusSubmit(status)
{
facebook_prompt_permission('publish_stream', function(accepted)
{
if(accepted) {
// User (already) has permission
alert(status + 'already granted');
}
else
{
// User does not have permission
alert(status + ' not granted');
}
});
}
function facebook_prompt_permission(permission, callbackFunc)
{
// Check if user has permission, if not invoke dialog.
FB.ensureInit(function() {
FB.Connect.requireSession(function(){
//check is user already granted for this permission or not
FB.Facebook.apiClient.users_hasAppPermission(permission,
function(result) {
// prompt offline permission
if (result == 0) {
// render the permission dialog
FB.Connect.showPermissionDialog(permission,
function(result){
if (null == result)
alert('no permissons granted');
else
alert('permissions ' + result);
}, true, null);
} else {
// permission already granted.
callbackFunc(true);
}
});
});
});
}
</script>
显示权限对话框并且用户授予权限后,我的本地开发计算机上的当前页面将重定向。我似乎无法通过我的设置控制此重定向行为。我已尝试将“授权后回拨网址”更改为公开可见的网页,但不会被调用。有什么我想念的吗?我想要
感谢您提出任何建议。
答案 0 :(得分:1)
abronte,谢谢你的建议。我实际上发现xd_receiver.htm的路径不正确,这导致了所有奇怪的行为。当我纠正这一点时,事情就没事了。但是FB Javascript API非常不稳定,我们决定不使用它,因为行为不稳定。我们将来会改用基于服务器的解决方案。
答案 1 :(得分:0)
我相信在应用程序设置中设置的授权后回调网址只会处理facebook画布中的内容。在Facebook中授权应用程序后会调用哪个URL。
我认为最好的解决方案是(我这样做)是在扩展权限提示完成后手动重定向用户。
window.location = '/path/to/something';