Facebook图谱API - 获取好友信息

7

我正在尝试使用Graph API或FQL获取用户朋友的信息。

仅供测试,我想获取我的朋友的教育历史

为此,我创建了一个测试应用程序,并请求了扩展权限。

scope=offline_access,manage_friendlists,friends_work_history,
      friends_education_history,friends_about_me

我已经获得了访问令牌来使用API。

当我使用/me查询当前用户时,它运行良好。但是对于我的朋友,它返回空值。

我原以为,如果我请求friends_work_history,那么在通过朋友的ID进行查询时,额外的字段(work_history)将出现在朋友的对象中:

https://graph.facebook.com/FRIEND_ID&access_token=TOKEN

但是我只看到有关该用户(朋友)的基本信息。

然后我尝试特别请求该字段:

https://graph.facebook.com/FRIEND_ID?fields=work&access_token=TOKEN

但是还是没有成功。只返回朋友的ID。

我尝试使用FQL访问该信息:

https://api.facebook.com/method/fql.query?query=select+work_history+from+user+where+uid+in+(FRIEND_ID)&access_token=TOKEN

返回work_history = TRUE而不是数组。而且这个朋友肯定有指定的工作历史。

有人可以帮助我理解如何使用我的应用程序和扩展权限获取朋友的信息吗?

6个回答

7

在大多数情况下,Graph API 是明智的选择。要检索您的朋友信息,您需要先从用户那里收集一些扩展权限。然后,您可以检索比基本信息更多的信息。

以下是与不同类型的朋友信息相关的扩展权限列表:

friends_about_me        
friends_activities      
friends_birthday
friends_checkins        
friends_education_history       
friends_events
friends_games_activity      
friends_groups      
friends_hometown
friends_interests       
friends_likes       
friends_location
friends_notes       
friends_online_presence     
friends_photo_video_tags 
friends_photos      
friends_relationship_details        
friends_relationships
friends_religion_politics       
friends_status      
friends_subscriptions
friends_videos      
friends_website     
friends_work_history

希望这有所帮助 :)

3

我自己一整天都在苦苦思索这个问题,现在我相信我已经搞清楚了。在我找到的Facebook文档中,没有明确说明这一点。而且我不认为其他答案真正回答了你的问题,看起来你已经正确地请求了权限。无论如何,要请求你要查找的信息,请像这样ping api:

https://graph.facebook.com/userid/friends?fields=work&access_token=ACCESSTOKENHERE

这将在一个长的JSON响应中返回所有朋友的信息。
有点混乱,因为您请求的权限与查询API所需的不同。
上面的查询将返回带有工作历史的朋友ID。您可以向字段参数添加逗号以包括其他信息(如姓名),但这样API调用/响应最终需要很长时间。

1

http://developers.facebook.com/docs/reference/api/user/

您可以获取此处提到的所有字段。要获取工作信息,您需要拥有user_work_history或friends_work_history权限

在链接中提到了在获取信息之前需要获得哪些权限,另外用户还需要允许您的应用程序,这将使您的应用程序获取信息。


1

嗨,@Gustavo Ambrozio,我正在执行这个“me/friends?fields=education”并获取所有详细信息,但我想知道你的哪些朋友在我就读的同一所学校/大学学习。这可能吗? - Sthita

0

你可以使用这段代码,获取你朋友的姓名、头像和ID。

FB.api('/me/taggable_friends', function(response) { for (var i = 0; i < friend_data.length; i++) { results += ''+friend_data[i].name; } });

在此之前,在你的开发者账户创建应用程序->转到工具和支持->图形API浏览器->点击获取Token。 在该窗口中点击用户标记位置,然后点击获取访问令牌。你将得到你的朋友列表。


如果您已在Facebook上创建了一个应用程序,这将有助于您入门:https://developers.facebook.com/tools/explorer/ - JayRizzo

0
我建议你像其他人建议的那样去http://developers.facebook.com/docs/reference/api/user/,但作为一个通用的提示,使用friends_education_history作为获取朋友历史的一种方式。
附言:你原来的问题有一个小拼写错误需要修改。"education_histroy." = education_history在你主段落的第二行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接