Ore*_*obi 3 facebook facebook-graph-api facebook-javascript-sdk
我有一个Facebook应用程序,我使用JavaScript JDK.
我很好地请求电子邮件许可:
对于新用户,我重定向到授权窗口:
top.location = 'https://graph.facebook.com/oauth/authorize?client_id=' + APP_ID + '&scope=email&redirect_uri=XXX';
Run Code Online (Sandbox Code Playgroud)
然后尝试获取它:
FB.getLoginStatus(function (response) {
if (response.authResponse) {
FB.api('/me', function (response) {
console.log(response.email);
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于现有用户(如果他们的电子邮件未定义)我甚至尝试重新请求电子邮件权限并重新获取它:
FB.login(function(response){
if(response.status == 'connected'){
FB.api('/me?fields=email,id', function(response) {
console.log(response.email);
});
}
},{scope: 'email'});
Run Code Online (Sandbox Code Playgroud)
问题是,对于某些用户,我在/ me的响应中获取电子邮件,而其他用户未定义.有什么不对?
谢谢!
这不是问题的解决方案,但我最近解决了它的问题.
因为,所有Facebook用户都被分配了一个ID为的电子邮件地址:
[username]@facebook.com ,如果请求没有返回用户的电子邮件地址,我决定使用此电子邮件.
即
$email = isset($fb_user["email"])?$fb_user["email"]:$fb_user["username"] . "@facebook.com";
Run Code Online (Sandbox Code Playgroud)
同样,这不是解决方案,只是一种解决方法.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |