Twiter APIのJSONデータを確認する方法。変数操作をするためのprint_r関数と「ページのソースを表示」
目次
Twitter APIへデータを返すためのリクエストを出すと、JSON形式のデータが返ってきます。ドキュメンテーションを見れば、そのリクエストにもとづく回答サンプルがいくつも示されています。
この内容にもとづいて、オブジェクトや配列を指定すれば、自分が欲しいデータ(ツィート本文、スクリーン名、添付画像のURLなど)を取り出すことができます。
print_rでオブジェクト形式のデータを取り出す
ただ、ドキュメンテーションはあくまでサンプルを示しているだけです。実際に欲しいデータを取り出したいときには、どのように指定すれば良いのかイメージしにくかったりします。
その場合とりあえずTwitter APIで取得できる、すべてのデータを表示させてみて、その位置を視覚的に確認すると分かりやすくなります。
その確認に使えるのが、変数を操作するための関数である、print_r関数です。以下はprint_r関数で取得できるデータを、すべて表示させるためのコードです。
<?php require_once("twitteroauth/twitteroauth.php"); $consumerKey = ""; $consumerSecret = ""; $accessToken = ""; $accessTokenSecret = ""; $twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret); $request = $twObj->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json','GET', array( 'count'=>'200', 'screen_name' => 'YOURSCREEN_NAME', )); $results = json_decode($request); ?> <?php if(isset($results) && empty($results->errors)){ foreach($results as $tweet){ ?> <?php print_r($tweet); ?>
そのままでは見づらい状態なので、「ページのソースを表示」を呼び出します。すると、リクエストをしたデータについてオブジェクトの形で確認することができます。
なおオブジェクトの先頭にあるstdClassとは、PHPに標準で備わっているクラスです。特に何かを定義しなくても、使うことができます。
echoの出力は「文字列」
ちなみにprint_rの代わりに、echoを使うと次のようなエラーが出ます。
Catchable fatal error: Object of class stdClass could not be converted to string in ...
echoは文字列を出力するための関数であって、配列を主力するためのものではないからです。配列の出力は、print_rを使います。
〔参考サイト〕