0

上記のエラーをスローしているコードは次のとおりです。

    $friend_json = $facebook->api('/me/friends');
    $friends = array();
    foreach($friend_json->data as $friend) {
        $friends[] = $friend->name;
    }
    $friend_list = json_encode($friends);

同じクエリを実行しているときにこのエラーをスローしていなかったので、このコードが機能することはわかっていますが、で直接グラフAPIURLを使用している場合file_get_contents();です。SDKは、同じスクリプトでユーザーデータを正常にプルするために使用されているため、正しくインストールされています。

4

3 に答える 3

0

からの応答Facebook::apiArray

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;
  }
于 2012-04-19T12:27:50.013 に答える
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'];
}
于 2012-04-19T12:35:03.497 に答える
0

配列の配列であるにもかかわらず$user_friends、PHPでは、私が知る限り、オブジェクトとして扱われますが、'->'そのサブ配列にアクセスするために使用するのは好きではなかったので、代わりに角括弧を使用しました。でもあなたの助けをありがとう。

作業コード:$ friend_list = $ facebook-> api('/ me / friends');

$friends = array();
foreach($friend_list['data'] as $friend) {
    $friends[] = $friend['name'];
}
$friend_list = json_encode($friends);
于 2012-04-19T13:48:11.183 に答える