FB.Connect.showPermissionDialog后重定向问题

时间:2009-09-08 00:29:48

标签: javascript facebook

我正在建立一个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>

显示权限对话框并且用户授予权限后,我的本地开发计算机上的当前页面将重定向。我似乎无法通过我的设置控制此重定向行为。我已尝试将“授权后回拨网址”更改为公开可见的网页,但不会被调用。有什么我想念的吗?我想要

  1. 获取授权后回调网址,使其成为可行的内容
  2. 如果用户授权后没有重定向,那就更好了 权限。这个选项是最好的。
  3. 感谢您提出任何建议。

2 个答案:

答案 0 :(得分:1)

abronte,谢谢你的建议。我实际上发现xd_receiver.htm的路径不正确,这导致了所有奇怪的行为。当我纠正这一点时,事情就没事了。但是FB Javascript API非常不稳定,我们决定不使用它,因为行为不稳定。我们将来会改用基于服务器的解决方案。

答案 1 :(得分:0)

我相信在应用程序设置中设置的授权后回调网址只会处理facebook画布中的内容。在Facebook中授权应用程序后会调用哪个URL。

我认为最好的解决方案是(我这样做)是在扩展权限提示完成后手动重定向用户。

window.location = '/path/to/something';