オンラインRPGのプレイ日記や攻略メインのブログです。稀にWeb製作記事も更新。

2016年12月7日 レイドボス:コアの鍵開け条件と有効デバフを更新しました。

Twitterのつぶやき検索結果をPHPで取得し表示する方法

2012年3月25日 【Web製作メモ
PCSX2で検索してみた

PCSX2で検索してみた

WordPressにツイッターを表示するプラグインというのはいくつもありますが、PHPを通して取得し自分の表示したいようにできるものが無かったので自分で作成してみます。

よくある自分のツイートを表示するのではなく、特定キーワードでツイッター内を検索しその検索結果をPHPで表示させてみましょう。

(いたずらでエミュってつぶやいちゃダメですよw)

Twitterのつぶやきから「エミュ or エミュレータ」で検索

取りあえず試作機ですがこんな感じ。RSS情報が特殊なのでPHP初心者な僕はいろいろ試行錯誤して2時間ぐらいかかりました。

検索結果のURLを知る

先に結論だけ書くと、検索結果をATOMで取得できるURLがあるので以下を参考にしてください。

http://search.twitter.com/search.atom?q=TEST%20lang%3Aja

分かりやすいようにTESTで検索したと仮定します。
キーワードの後に付いてくる%20lang%3Ajaとは、%20は空白スペースで%3Aはコロンを意味しています。

まぁそんなことはどうでもいいので、キーワードの後に%20lang%3Ajaを足せば日本人のみの検索結果が表示されます。

日本語キーワードの場合、URLに直接テストと打つとあまりよろしくないので、ツイッターで「テスト」と検索してください。
(%E3%83%86%E3%82%B9%E3%83%88)こんなよく分からない文字化けみたいなURLになるので、それをコピーしてメモ帳にでも保存しておきましょう。


追記 2012年3月26日 andやor検索のやり方も記述

ツイッターの検索画面で右上にある『高度な検索』を選択します。

『これらの単語のどれか』がOR検索となり、この例でいえば#lineage2かリネ2を話題に含むつぶやきのみを抽出します。

『これらの単語のいずれでもない』はこの単語を含むつぶやきを表示しなくなります。例でいえば「リネ2のエミュ鯖最近どうよ~?」なんていうつぶやきでも抽出されません。

そして最後に日本語を選択して検索をクリックするとURLが以下のような感じになるので、これを前に記述したATOMで取得できるURLに入れ替えます。クリックして設定どおりになってることを確認してください。

http://search.twitter.com/search.atom?q=%23lineage2%20OR%20%E3%83%AA%E3%83%8D2%20-%E3%82%A8%E3%83%9F%E3%83%A5%E9%AF%96%20lang%3Aja

RSS情報をPHPで取得し表示するコード

WordPressには標準でRSS取得しキャッシュ化できるプログラムが備わっていますが今回は面倒だったので使いません。ごく普通のPHPです。

<table class="twitter">
<?php
$rss = simplexml_load_file('http://search.twitter.com/search.atom?q=%E3%82%A8%E3%83%9F%E3%83%A5%20lang%3Aja');

foreach ($rss->entry as $entry) {
print "<tr>\n";
print "<td><img src='".convert($entry->link[1]->attributes()->href)."' width='48' height='48' alt='".convert($entry->author->name)."' /></td>\n";
print "<td><a href='".convert($entry->author->uri)."'>".convert($entry->author->name)."</a><br />".convert($entry->content)."</td>\n";
print "</tr>\n";
}

function convert($str) {
return mb_convert_encoding($str, mb_internal_encoding(), "auto");
}
?>
</table>
※注意点
  1. URLに日本語を含むと動かないので注意
  2. printがhtml表示部分で、\nは改行
  3. RSSのソースを見ながら取得したい部分をconvertする
    (例えばentryのauthorのuriを指定すればツイートした人のプロフィールアドレスになる)
  4. ツイートアドレスも取得できるけど、それだと晒しになるのでホームアドレスにした。

dl dt ddでfloatさせると回り込みの処理が面倒だったので、border消すだけでいいtableを今回は使用しました。

本当に超シンプルなのでこれを使うときはHyper Cacheのようなキャッシュプラグインを使いましょう。当ブログは4時間で設定してあります。

CSSで簡単なカスタマイズ

枠線消し、ついでに表示する位置を縦ラインの一番上からにする。あとはお好みでtdにpaddingつけて空白調整したりtrにborder-bottomを付けてかっこよくしてみたり。

table.twitter,
table.twitter tr,
table.twitter td {
 border: none;
 vertical-align: top;
}

記事に対してコメントする

投稿ルール
  • 記事内容に関することであれば特に制限はありません。
  • コメントに画像を添付することも可能です。補足説明として使いたいときなど。
  • 投稿ボタンを押すとすぐにページ反映されます。
    (URLを含むコメントは安全性確保のためストックに保留されます。)

名前 (Name) ※無記名にすると「匿名さん」になります

内容 (Contents)

10MB以下のJPG/GIF/PNG形式の画像をアップロードできます。

  1. ホーム
  2. 雑記
  3. Web製作メモ
  4. Twitterのつぶやき検索結果をPHPで取得し表示する方法
サイトに関するご要望や意見はこちらから

Twitterのつぶやき検索結果をPHPで取得し表示する方法

2012年3月25日 21:00

タグ: , ,

▲ページの先頭へ戻る