这是抛出上述错误的代码:
$friend_json = $facebook->api('/me/friends');
$friends = array();
foreach($friend_json->data as $friend) {
$friends[] = $friend->name;
}
$friend_list = json_encode($friends);
我知道这段代码的工作原理,因为当我在执行相同的查询但使用带有file_get_contents();
的直接Graph API URL时,并没有抛出此错误。 SDK已正确安装,因为它用于在同一脚本中成功提取用户数据。
答案 0 :(得分:0)
Facebook::api
的回复是Array
:
foreach($friend_json['data'] as $friend) {
$friends[] = $friend->name;
}
添加简单的错误检查也更好。
if ($friend_json && isset($friend_json['data'])
foreach($friend_json['data'] as $friend) {
$friends[] = $friend->name;
}
答案 1 :(得分:0)
试试这个,
$user_friends = $facebook->api('/me/friends');
$friends_details = json_decode(file_get_contents('https://graph.facebook.com/me/friends?access_token=<your access token>']), true);
for($i=0;$i<sizeof($friends_details);$i++){
$friends_name[] = $friends_details['data'][$i]['name'];
}
答案 2 :(得分:0)
尽管$user_friends
是一个数组的数组,但据我所知,在PHP中它被视为一个对象,它不喜欢我使用'->'
来访问它的子数组,所以我使用方括号。谢谢你的帮助。
工作代码: $ friend_list = $ facebook-&gt; api('/ me / friends');
$friends = array();
foreach($friend_list['data'] as $friend) {
$friends[] = $friend['name'];
}
$friend_list = json_encode($friends);