Hatena::ブログ(Diary)

xmallocのプログラミングノート

2010年08月01日

Twitter APIから取得したテキストをHTMLに変換するための公式ライブラリ

Twitter statuses/public_timeline APIとか、ツイートを取得する系のAPIのデータから@とか#とかhttp://をURLに変換する公式ライブラリがあるようなので簡単にレポ。

まずライブラリ自体は以下のURLからダウンロードできる。

mzsanford's twitter-text-rb at master - GitHub

mzsanford's twitter-text-java at master - GitHub

mzsanford's twitter-text-php at master - GitHub

Python Package Index : twitter-text-py 1.0.3

Tweet Entities | dev.twitter.comにツイートからエンティティ抜き出すにはtwitter-text使えって書いてるからこれらが公式ってことでほぼ問題無いと思う。mzsanford氏はツイッターの国際化チームの一員。ただしPythonは作者違うようなので公式扱いでは無いかもしれない。Perlは無いっぽい。



使い方

Ruby版が大元っぽかったのでそっちの使い方説明しようと思ったんだけど、rakeの動かし方がいまいちよく分からんかった(何かファイルが無いと怒られた)ので、PHP版で説明。(個人的にはPython版が一番要るんだけど作者違うのでアレ。)

  1. mzsanford's twitter-text-php at master - GitHubからリポジトリをcloneしてダウンロード
    $ git clone http://github.com/mzsanford/twitter-text-php.git
    
  2. リポジトリ中のsrc/Twitterをinclude_pathの通ったディレクトリにコピー。
    $ cd twitter-text-php/src
    $ cp -r Twitter WHERE
    
  3. Twitter_Autolinkクラスのautolinkメソッドで、APIから取得したテキストをHTMLに変換できる。
    <?php
    require_once "Twitter/Autolink.php";
    $a = new Twitter_Autolink();
    echo $a->autolink('RT @mashable @LinkedIn Beefs Up Its Twitter Integration [PICS] http://bit.ly/bkB7cA #linkedin #tweets #twitter'), "\n";
    ?>
    
    出力はこんな感じ。スクリーンネームハッシュタグURLが<a>タグでリンクになってる。
    RT @<a class="tweet-url username" href="http://twitter.com/mashable">mashable</a> @<a class="tweet-url username" href="http://twitter.com/LinkedIn">LinkedIn</a> Beefs Up Its Twitter Integration [PICS] <a href="http://bit.ly/bkB7cA">http://bit.ly/bkB7cA</a> <a href="http://twitter.com/search?q=%23linkedin" title="#linkedin" class="tweet-url hashtag">#linkedin</a> <a href="http://twitter.com/search?q=%23tweets" title="#tweets" class="tweet-url hashtag">#tweets</a> <a href="http://twitter.com/search?q=%23twitter" title="#twitter" class="tweet-url hashtag">#twitter</a>
    
    ちなみに$Twitter_Autolink->noFollowで<a>タグにnofollow属性付けれるってソースに書いてあるんだけどPHP版は実装されてないっぽい。有効にしたかったら要改造。

Githubにも使い方が書いてあるのでそっちも見てくれ・・・まあそれ紹介すれば済む話なんだけど。

他の言語のは誰か親切な人が説明してくれるはず。



後書き

不勉強ながらこのライブラリの存在自体知らなかったりしました。Tweet Entities | dev.twitter.comを読んでたらたまたま見つけた感じです。twitter-text-rbとかでググるとそれなりに使ってる人いるみたいですが、普及してるとは言い難い感じ。

とりあえず、一時期あった日本語ハッシュタグとかの公式変換ルールがいまいちよく分からん問題とかはこれ一発で解決ですよ、ということで。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/xmalloc/20100801/1280634111