2012-01-30 37 views
1

假设我有一个通过Facebook PHP SDK登录的用户,并且我有权获取bio(user_about_me)和education(user_education_history)。如果我想获取这些数据,我会怎么做呢?我知道,如果我想获得用户兴趣,我只是运行真正基本的PHP SDK问题

$facebook->api("/me/interests"); 

但是,这不适用于生物和教育历史。使用PHP SDK,我如何获得这些数据?谢谢。

编辑:这里是应用程序权限的图片,以及用于请求权限的代码。

The Permissions for My App

$login_url = $facebook->getLoginUrl(array('scope' => 'email, publish_stream, 
user_about_me, user_interests, user_education_history')); 

回答

2

你不能这样做$facebook->api("/me/about") ; OR $facebook->api("/me/bio") ;这将抛出一个致命的错误:

Fatal error: Uncaught OAuthException: Unknown path components: /about thrown in 
[...]/base_facebook.php on line 1028 

如果你想得到user_abo ut_me和user_education_history您可以这样做:

$user = $facebook->api("/me") ; 

然后解析$ user数组以获得您需要的值。如果你使用教育历史,那么你可以这样做:

$user_education_history = $user['education']; 

希望这会有所帮助。 :)

+0

奇怪的是,$ user数组不包含生物或教育。这是它总是应该的地方吗? /我/返回应用程序有权获取的所有数据吗? – LonelyWebCrawler 2012-01-30 05:20:35

+0

@LonelyWebCrawler请看我的编辑。您需要授予权限 – Sabari 2012-01-30 05:36:58

+0

我向我的帖子添加了权限的图片。它不是应该这样工作吗? – LonelyWebCrawler 2012-01-30 17:07:15

1

我记得facebook- $> API( '/我');获取有关用户的所有信息。

+0

不是生物或教育。 – LonelyWebCrawler 2012-01-30 05:13:38

+0

如果您有权限授予它,否则会排除它们。 – DMCS 2012-01-30 05:44:20

+0

请参阅我的编辑。 – LonelyWebCrawler 2012-01-30 17:07:34

0

只是用这样的:

$facebook->api("/me") ; 

你可以从这个所有的用户信息。只需解析你需要的数组。它输出所有与用户有关的信息。您将只获取您有权获取的信息。

更新: 所需权限:

bio: user_about_me or friends_about_me 
education:user_education_history or friends_education_history 

如果你想具体再使用:

$facebook->api('/me?fields=bio,education'); 
+0

我以前试过这个。它只返回用户标识,而不是所需的信息。 – LonelyWebCrawler 2012-01-30 05:15:17

+1

api(“/ me”)是否仅打印用户标识?它会给你有权限的所有数据。您是否有延长访问生物和教育信息的许可? – 2012-01-30 05:30:41

+0

是的,当我进入我的帐户设置并查看给予应用程序的权限时,生物和教育就是其中之一。 – LonelyWebCrawler 2012-01-30 16:41:39