正在获取用户'通过Facebook API庆祝生日
Getting user's birthday through Facebook API
我在使用Facebook API时遇到了一些问题,我正在通过Javascript:请求用户的某些信息的权限
FB.login(function (response) {
if (response.authResponse) {
// authorized
} else {
// canceled
}
}, {scope: 'email,user_birthday,user_location'});
现在我想通过PHP:获得用户的信息(当他被授权时)
$facebookUser = json_decode(file_get_contents('https://graph.facebook.com/' . $this->data['userid'] . '?access_token=' . $this->oathtoken . '&fields=id,name,location,gender,email,picture,birthday,link'));
一切都很好,除了API没有给用户回生日。即使我在公共场合设置了生日隐私设置,它也不会出现。
因此:
echo $facebookUser['birthday']; // Gives an error, since this key does not exists
有人知道怎么解决这个问题吗?
您在客户端登录,但php在服务器端执行,因此您只收到用户对象的基本信息。
如果你在服务器端登录并拥有权限,那么你只需使用就可以获得生日
echo $facebookUser['birthday'];
很可能您没有收到FB请求user_birthday
的批准。
除非FB审查你的FB应用程序,否则你无法获得user_birthday
。
仅可请求以下权限而无需审查:public_profile
、user_friends
和email
(请参见:https://developers.facebook.com/docs/facebook-login/review/what-is-login-review)
无需审查,您只能请求age_range
,而不能请求user_birthday
FB.login(function (response) {
var user_birthday = response.user_birthday;
console.log(user_birthday);
if (response.authResponse) {
} else {
// canceled
}
}, {scope: 'email,user_birthday,user_location'});
如果你想在服务器端获取FB信息,为什么不使用服务器端身份验证呢
如果您可以接受客户端身份验证,那么上面的操作应该可以。
相关文章:
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 通过ajax嵌入Facebook视频
- 通过Javascript和PHP SDK保护Facebook登录
- 通过Javascript SDK登录Facebook可以在移动设备和本地主机上使用,但不能在台式机上使用
- Phantomjs 与 Facebook 的连接无法通过 SSL 握手
- 允许通过Cordova上的Firebase登录Facebook
- 正在获取用户'通过Facebook API庆祝生日
- 通过服务器调用Graph API来构建我自己的Facebook帖子数据库
- 使用 facebook graph API 在 facebook 上通过 URL 发布视频
- Facebook:只有表“位置”中的列名称无法通过.innerHTML写入
- 如何通过Facebook Graph Api获取用户的朋友在生日时发布在用户墙上的帖子
- 是否可以通过API为特定页面添加Facebook评论,以避免需要评论插件
- 如何通过javascript SDK在Facebook上上传照片
- 如何从 FQL 查询中获取 src_small URL,并在通过 javascript 上传我的 facebook 个人
- 只需通过一个基本上带有html的网址发布到Facebook
- Facebook JavaScript SDK 通过 Omniauth-Facebook 获得额外权限
- Facebook通过返回的JSON Open Graph请求进行循环
- Facebook通过javascript向页面发送消息
- Facebook通过fbi分享
- Facebook通过iframe分享