pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

PHP:twitterを検索して必要な内容を画面表示する

前説:PHPつかってもがいてます。対象はtwitterAPI、OAuth経由でデータ読み出したいのです

pagetaka.hatenablog.com

昨日は、「GitHub - abraham/twitteroauth: The most popular PHP library for use with the Twitter OAuth REST API.」を使わせてもらい、なんとなく読み込みできました。ただ、twitterの中の特定の項目内容をピックアップして表示できずに悩んでおりました。
PHPなんですけど、イロイロ上のを参考に「$results = $connection->get('search/tweets',$query);」というように実行したら「$results」にデータは来たみたいです。
「print_r($results);」などと吐き出してみると一杯表示されました。
本日は、その続きです。

print_rはできたけどechoではエラーばっかり

print_rで読み込みに成功しているのだから、項目別に画面表示することもそう面倒は無いだろう、などと軽く考えていました。構造が複雑で、そもそもどういうカタチでできあがっているのか、爺にはチンプンカンプンです。ちゃんと勉強してないといけんですね。

<?PHP
//いろいろこの前にライブラリやら設定やらやったです
$results = $connection->get('search/tweets',$query);
print_r($results);
//でも「echo」でどう書いたものか、さっぱりわからんかったです…。
?>

foreachでの吐き出し方見て、イロイロ試したらなんとなくできた

twitterer.blog.jp
↑こちらに参考になるスクリプトがありました。

foreach ($results->statuses as $result) {
  echo $result->user->screen_name . ": " . $result->text . "n";
}

foreachの()の中は「$results」が読み込んだ総体で、そのなかの「statuses」に含まれる範囲に注目し、それを仮に「$result」という入れものに預ける、というようなことかと思います。
で、その「$result」のなかの「user」にふくまれる「screen_name」の値をecho(画面表示)しなさい。続けて、「$result」のなかの「text」の値もネ、というようなことかと。「statuses」「user」「screen_name」「text」などは、「print_r」で表示した画面上では確かにあるのです。その中身が何かというのも見えるのです。

そして、ついでに不思議なことに、あれ?構造が3階建てと2階建てに分かれている、というようなことで、tweetのなかで必要そうな項目をイロイロに置いて試してみたです。その結果、次のようなことでした。

echo $result->created_at; //投稿日付時間
echo $result->text; //投稿本文
echo $result->id; //投稿を一意に現わす数字=投稿URLの一部を構成
echo $result->user->screen_name; //@のあとの表示、投稿URLの一部を構成

リンク先が本文にあったり、retweetだったり、画像やハッシュタグもあったりなどなど、ひとつのtweetにある情報は複雑です。そのほかにも役に立ちそうな項目もいっぱいあるですネ。
dev.twitter.com

ひとつのtweetを一意に現わす固定URL

(id)はidの値を現わすとして
https://twitter.com/(screen_name)/status/(id) となるのではないかと思うです。
参考↓
ameblo.jp