エントリへのtwitterつぶやきを表示する道

【注意】本エントリでのやり方は「backtweets.com」のサービスに依存しているのですが、2010年4月現在、一週間以上サイトの反応がない状態なので、泣く泣くはずしました。現在は「topsy」で作りなおしています。

#さーて、ついった話をするとみんな喰いついてくるのを見越してエントリ書いちゃうぞ〜www

きっかけはこの発言。

mehori mehori said:

ニュースサイトに「この記事をつぶやく」というリンクが増えてきているけど、つぶやいてくれた人の ID を表示するみたいなリターンがないと一方的に利用されてる感じがするのは自分だけ?
11:06 AM Nov 13th

たしかに。自サイトに呼び込むために「twitter」(通称「ヒ」ボタン」)をつけるのであれば、それに貢献してくれた呟き(およびその主)をちゃんとサイトに表示するのがうるわしき相互のマナーというものでありましょう。
というわけで検索開始。

MOONGIFT: » ブログにtwitterのつぶやきを表示する「twitterer anywhere」:オープンソースを毎日紹介

あっさり見つかる。javascriptだけで動くらしい。ラクでいいですねえ。というわけで取り付け。

……動かない。この手のツールは検索部分のインデックスがされてるかどうかとか、いろいろ要因が多いのでアレなんですが、いつまでたってもさっぱり表示されない。で、この仕組みのコアになってる「twitter検索」の挙動をしばし観察。

bit.lyはスルーですか(泣)

うむ、それではひっかからない。特に弊社のサイトはエントリに日本語タイトルバリバリだから短縮urlは必須。twitterが公式に乗り替えた以上、bit.ly使わないでね、とは言えないし、これでは相当短いタイトルのエントリを書かない限り、未来永劫表示されることはないでしょう。これは困った。

ふたたび検索。……あった。

POLAR BEAR BLOG: 短縮URLを元に戻して検索可能な Twitter 検索BackTweets

bit.ly(のみならずtinyurlとかff.imとか、メジャーどころは大体イケるっぽい)に対応した上で、ちゃんと言及tweetを検索してくれているtwitter検索サイトを発見。しかも結果をrssで吐いてる。ってことは、自分のエントリのurlを投げて、返ってきた結果をJSONPとかで処理すればいいのねン。。。

で、数時間経過。動かない。なんかurlエンコーディングまわりでハマってる模様。mb_convert_encoding()的なことを一発やってやればいいみたいなんだけど、Javascriptでのやりかたがわからない。ここだけphpに渡そうかと思ったけど、それもよくわからない。……っていうか、最初に発見した例のヤツが、実はJavaScriptだけで完結せずに、自分とこのサイトのphpスクリプトでいったん処理している流れであることにようやく気付いて、「MOONGIFT謹製っていったい。。」と、喜怒哀楽いずれにもあてはまらない気分に浸る。

結局、すべてをphpで書き直すことに。「すべて」っていってもコアはbacktweetさんがすべて良きにはからってくれるし(実はそっからさらに「tweetimag.es」というサービスを叩いて、ユーザアイコン表示の部分でずいぶんラクさせてもらっているんだけどそこいらは省略)、たいしたことはやってないんだけど、まあ、完成しました。(なお、つぶやきを表示するまわりのcssは、めんどうだからパクったネタ元の「twitter anywhere」に敬意を表してそのまんま使わせてもらっております。)

うむ、できたできた。

エントリ「twitterバッジはじめました」にtwitterからの言及が!(自演乙☆)

エントリ「twitterバッジはじめました」にtwitterからの言及が!(自演乙☆)

ということで、「ヒ」ボタンをサイトにつけるのであれば、この機能とセットではじめて、「twitterとサイトを連動」、と言えるのではないでしょうか。なんてね。
phpスクリプトのソースは恥ずかしい(というか公開すべくちゃんと整理するのがめんどい)ので、この後tweetしたのが10fav行ったら晒します。

関連してそうなエントリ

日高崇