Facebook API-返回奇怪值的用户对象

Facebook API-返回奇怪值的用户对象,facebook,api,object,properties,Facebook,Api,Object,Properties,我有一个,但它唯一的属性是教育、名字、id、姓氏、链接、区域设置、位置、名称、时区、更新的时间、已验证的。这不仅是缺少的应该公开的属性(如picture),而且这些值与文档不同(updated\u timevslast\u updated)。最后,奇怪的是,我从文档页()上的链接得到了同样的结果。最终,我将尝试获取user.feed 如果您对正在发生的事情有任何想法,我们将不胜感激。我错过了什么明显的东西吗 访问提供以下信息: {“错误”:{ “类型”:“OAutheException”, “消

我有一个,但它唯一的属性是
教育、名字、id、姓氏、链接、区域设置、位置、名称、时区、更新的时间、已验证的
。这不仅是缺少的应该公开的属性(如
picture
),而且这些值与文档不同(
updated\u time
vs
last\u updated
)。最后,奇怪的是,我从文档页()上的链接得到了同样的结果。最终,我将尝试获取
user.feed

如果您对正在发生的事情有任何想法,我们将不胜感激。我错过了什么明显的东西吗

访问提供以下信息:

{“错误”:{ “类型”:“OAutheException”, “消息”:“必须使用活动访问令牌进行查询 有关当前用户的信息。“
}}

为什么我需要活动访问令牌?说
picture
feed
是公共的

这是代码。
用户
对象被记录到Firebug.console:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
<script type="text/javascript">
function update_user_box() {
var user_box = document.getElementById("user");
FB.api('/me', function(user) { 
user_box.innerHTML = "<fb:profile-pic uid=\"loggedinuser\" useyou=\"false\"></fb:profile-pic>"
+ "Hey " + user.first_name + "<br>";
FB.XFBML.parse();
console.log(user);
});
}
</script>
</head>
<body>


<div id='user'><fb:login-button onlogin="update_user_box();"></fb:login-button></div>
<br><br>

<div id="fb-root"></div>
<script>
FB.init({
appId  : 'b07e858317c9069d450023b7500b4511',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml  : true  // parse XFBML
});
FB.getLoginStatus(function(response) {
if (response.session) {
update_user_box();
} else {
// no user session available, someone you dont know
}
});
</script>
</body>
</html>

函数更新\用户\框(){
var user_box=document.getElementById(“用户”);
api('/me',函数(用户){
user_box.innerHTML=“”
+“嘿”+user.first_name+“
”; FB.XFBML.parse(); console.log(用户); }); }

FB.init({ appId:'b07e858317c9069d450023b7500b4511', 状态:true,//检查登录状态 cookie:true,//启用cookie以允许服务器访问会话 xfbml:true//解析xfbml }); FB.getLoginStatus(函数(响应){ if(response.session){ 更新_user_box(); }否则{ //没有可用的用户会话,您不认识的人 } });
从用户处获取脱机访问


提要<代码>https://graph.facebook.com/{ID@username}/feed/

有几件事你可以试试

  • 检查数据是否与{YOUR_FB_ID}正确匹配
  • 是否有任何数据(为空)需要扩展权限。看
  • 您是否使用正确的身份验证令牌和oAuth2.0
我希望这些将帮助您调试


编辑:

我们遇到了一个问题,我们使用旧API(FB connect)并试图获取扩展权限中提到的数据。由于某种原因,我们没能做到。我们切换到oAuth2.0,它成功了#子弹只是为了分享我的经验


另外,对于我们刚刚从{user_id}/picture

获取数据的照片,可能我不明白,但这是在一个网页上,
user.feed
被列为公共帖子的“公共可用”,与
first_name
有效,而
user.picture
神秘地不存在。这也不能解释上次更新时间的名称差异。根据FB doc,在read_stream下,它说,“提供对用户新闻提要中所有帖子的访问,并使您的应用程序能够对用户新闻提要执行搜索”是的,但这是针对新闻提要
user.home
。我想要用户的墙贴,在
user.feed
中,它只需要“需要读流权限才能看到非公开帖子”谢谢你的建议!如果你重新阅读我的帖子,你会发现我链接到了graph.facebook.com,它确实匹配。没有空值。我不确定你的最后一点会如何影响这一点。第三点只是为了确保你正在使用新的API。当我使用FB Connect API时,我发现扩展权限存在问题。对于profile image,我们只需通过创建{user_id}/pictureI see获取数据。我现在已经包括了代码。我正在使用新的API…PS。啊哈!这个链接帮助我获得了一些新信息!我将立即再次更新我的OP。请尝试使用用户名或id获取
https://graph.facebook.com/{ID@username}/feed/
每当您希望API以JSON对象的形式提供数据时,都需要访问\u令牌。我认为你关于公共饲料的看法是正确的。你可以手动尝试类似的东西吗{你的_访问_令牌}@haha是的,可以。