Facebook graph api 用于电子邮件的facebook javascript权限对话框

Facebook graph api 用于电子邮件的facebook javascript权限对话框,facebook-graph-api,facebook,facebook-javascript-sdk,Facebook Graph Api,Facebook,Facebook Javascript Sdk,我有个问题。。。。实际上,我正在用FB javascript SDK开发一个facebook应用程序。在我的申请中,我需要电子邮件许可才能进一步处理。我正在使用 FB.Connect.showPermissionDialog(“电子邮件”); 但有些人认为对话框不会出现。。。这是我的密码 <script> appid = '*************'; name = 'Palmchip Test App'; href = 'https://apps.fac

我有个问题。。。。实际上,我正在用FB javascript SDK开发一个facebook应用程序。在我的申请中,我需要电子邮件许可才能进一步处理。我正在使用

FB.Connect.showPermissionDialog(“电子邮件”); 但有些人认为对话框不会出现。。。这是我的密码

 <script>
    appid = '*************';
    name = 'Palmchip Test App';
    href = 'https://apps.facebook.com/*********/';
    FB.init({
    appId:appid, cookie:true,
    status:true, xfbml:true
    });
    FB.getLoginStatus(function(response) {
    if (response.session) {
    alert("You are logged in...");
    FB.Connect.showPermissionDialog("email", function(perms) {
           if (!perms) {
            alert("no access");
           } else {
               alert("accessed...");
           }
         });
    }
    else {
    top.location.href='https://graph.facebook.com/oauth/authorize?client_id='+appid+'&redirect_uri='+href+'&display=page';
    }
    });

</script>

appid=“*************”;
名称='掌上芯片测试应用程序';
href='https://apps.facebook.com/*********/';
FB.init({
appId:appId,cookie:true,
状态:true,xfbml:true
});
FB.getLoginStatus(函数(响应){
if(response.session){
警报(“您已登录…”);
FB.Connect.showPermissionDialog(“电子邮件”,功能(perms){
如果(!perms){
警报(“禁止进入”);
}否则{
警报(“已访问…”);
}
});
}
否则{
top.location.href=https://graph.facebook.com/oauth/authorize?client_id=“+appid+”&redirect_uri='+href+'&display=page';
}
});
显示“您已登录…”的警报工作正常,但随后什么也没有发生

  • 您需要升级到OAuth 2.0
    ouath:true
  • 你应该用新的
  • 您应该知道升级时将返回不同的对象:
    response.authResponse
  • 请尝试此代码块

    FB.init({appId: <?= APP_ID ?>, status: true, cookie: true, xfbml: true, oauth:true});
    
    function getin(){
        FB.login(function(response) {
            if (response.authResponse) {
                var regurl = "/login";
                location.href=regurl;
    
            } else {
                var regurl = "/logout";
                window.location.href=regurl;
            }
        }, {scope:'email'});
    
    }
    
    FB.init({appId:,status:true,cookie:true,xfbml:true,oauth:true});
    函数getin(){
    FB.登录(功能(响应){
    if(response.authResponse){
    var regurl=“/login”;
    location.href=regurl;
    }否则{
    var regurl=“/logout”;
    window.location.href=regurl;
    }
    },{范围:'email'});
    }
    

    因此,当您调用getin()函数时,如果当前用户已经向您提供了电子邮件地址,它将不为他做任何事情,只会将他重定向到/loginurl,但是,如果用户是新用户,则在他/她允许您使用图形或fql提取电子邮件地址后,他/她将看到一个弹出框,询问电子邮件地址。顺便说一句,FB内的响应。登录名有用户id、访问权限和一些更有用的数据,请保存以备将来使用。

    我尝试了OAuth对话框链接,即使使用了与此处提到的完全相同的代码,我仍然没有收到响应:(n使用Direct URL示例后,我在一个页面上看到一个大的Facebook图标,单击该图标后,我被引导到“权限”对话框“允许”对话框