Synaweb.net シナウェブ

デザインやmacやその他いろいろ
(当サイトはプロモーションが含まれています)

phpでTwitter APIの検索結果を取得してみる練習

今までWordpressのテンプレを編集するのにその場しのぎでしかphpとか触ったことがありませんが、少しは勉強しようと思いまして、まず手始めにTwitter APIを利用して予め設定したキーワードの検索結果を表示してみようというものです。

このままでは当然使い物にならないですが、超初心者なので勉強ということで。


<?php
$rss = simplexml_load_file(‘https://search.twitter.com/search.atom?q=%23keiba&lang=ja’);
$title = $rss->title;
?>
<html xml:lang=”en-US” lang=”ja-JP”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″/>
<title><?php echo $title; ?></title>
</head>
<body>
<h1><?php echo $title; ?></h1>
<?php
foreach ($rss->entry as $entry) {
echo “<img src='” . $entry->link[1]{“href”} . “‘ />”;
echo “<h2><a href='” . $entry->author->uri . “‘>” . $entry->author->name . “</a></h2>”;
echo “<p>” . $entry->content . “</p>”;
}
?>
</body>
</html>


こんな感じで記述して一旦は思うような情報が取得できたのですが、これが正しい書き方かはよくわかりません。
間違っていたら教えていただけると助かります。

で、解説。

<?php
$rss = simplexml_load_file(‘https://search.twitter.com/search.atom?q=%23keiba&lang=ja‘);
$title = $rss->title;
?>

https://search.twitter.com/search.atom
が、リクエストURLになります。

q=xxxxxx
で、検索キーワード(ここでは仮に“ #keiba ”としています。)を指定して、

lang=ja
で、日本語のツイートのみに限定。

https://search.twitter.com/search.atom?q=%23keiba&lang=ja
↑こんな感じのデータを読み込もうとしてます。

これをsimplexml_load_fileで読み込み、$rssとします。
次の行で$rssの中で直に出てくる<title>タグの文章を、$titleとしました。


<head>内の
<title><?php echo $title; ?></title>
と、<body>内の
<h1><?php echo $title; ?></h1>
で、上の$titleを出力。


さて、ここから今回メインのデータの取り出しです。

foreach ($rss->entry as $entry)
foreachで各エントリーごとにloopして取り出します。

echo “<img src='” . $entry->link[1]{“href”} . “‘ />”;
<entry>タグ内にある2つ目の<link…>にあるhref=”xxxxxx”を出力。

echo “<h2><a href='” . $entry->author->uri . “‘>” . $entry->author->name . “</a></h2>”;
echo “<p>” . $entry->content . “</p>”;

ここは各自、<entry>→<author>→<uri>というように指定して出力。


と、現状はここまで。

これでアクセスしてみると以下のリンクのように表示されます。
https://synaweb.net/twitest/

このままでは、表示する度にTwitter APIにリクエストを送ってしまうので、回数により制限に引っかかたりします。
ですので、1回リクエストしたら何分以内はリクエストしないとかの処理をしないとダメなようです。
あと、ページとかの指定とかもしないと(漠然・・・)

ここから段々複雑になっていきそうだけど、俺できるかな・・・?

■今回参考にさせていただいたサイト
[Twitter] 検索系APIの使い方 [Sometime PHP]
Twitter API 仕様書
PHPとTwitterAPIを利用して、自分のタイムラインを表示してみる@デザイナー [caraldo.net]
PHP/SimpleXML [634]

■関連記事
Twitter APIの検索結果をCacheしてから表示する練習
 

その他、こちらから検索してみてください。

  


Dropbox新規登録しませんか?
このリンクから新規登録で、通常の2GB+250MBが無料になります。
私も+250MBもらえるので、登録まだの方ぜひご協力お願いします。

https://db.tt/8yPaC46