0

ユーザーのすべてのステータス メッセージを読み取ろうとしています。次のコードを使用しました。

//gets statusid, message and uid of the user
function get_status_message($access_token){
    // Run fql query
  $fql_query_url = 'https://graph.facebook.com/'
    . '/fql?q=SELECT+message+,+status_id+,+uid+FROM+status+WHERE+uid=me()'
    . '&access_token=' . $access_token;
  $fql_query_result = file_get_contents($fql_query_url);
  $fql_query_obj = json_decode($fql_query_result, true);

  //display results of fql query
  echo '<pre>';
  print_r("query results:");
  print_r($fql_query_obj);
  echo '</pre>';
  return $fql_query_obj;
}

以下を返します

query results:Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [message] => test3
                    [status_id] => 5.0606879274642E+14
                    [uid] => 1.0000029926744E+14
                )

            [1] => Array
                (
                    [message] => test2
                    [status_id] => 5.060443560822E+14
                    [uid] => 1.0000029926744E+14
                )

            [2] => Array
                (
                    [message] => testing !
                    [status_id] => 5.0304255638238E+14
                    [uid] => 1.0000029926744E+14
                )

        )

)

ステータス ID を取得して mysql db に入れる必要があります。foreach を試しましたが、ループできません。以下のコードは機能します

ただし、最初のインデックス値を $value* [0] *["status_id"] として明示的に指定する必要があります。誰か助けてくれませんか

4

1 に答える 1

1

You need to check if the Facebook call actually retrieved data for you to process then loop through the result and insert to your DB, with something like:

if(!empty($fql_query_obj['data'])) {
    foreach($fql_query_obj['data'] as $status) {
        $status_id = $status['status_id'];
        // create SQL insert batch
    }
    // Run the insert batch
}
于 2012-10-31T20:11:08.607 に答える