以前書いた記事2つのつづきで Twitter Bot を作った話。
Xrea + CakePHP + MeCab で日本語形態素解析
CakePHP + OAuth + Twitter API で Bot を作る
上記のことがクリアできれば、あとは自分の好みの Bot を作るだけ。という状態。
今回作ったのが、ご当地ロボ (gotohchi) on Twitter。
以前書いた記事2つのつづきで Twitter Bot を作った話。
Xrea + CakePHP + MeCab で日本語形態素解析
CakePHP + OAuth + Twitter API で Bot を作る
上記のことがクリアできれば、あとは自分の好みの Bot を作るだけ。という状態。
今回作ったのが、ご当地ロボ (gotohchi) on Twitter。
前回作った Xrea + CakePHP + MeCab で日本語形態素解析 を組み合わせてマルコフ連鎖でカオスな文章をつぶやく予定だが、今回は OAuth で Twitter API とやり取りして自分のアカウントに「つぶやけ」とツイートする Bot を作るまで。
分類待ち – まとめのインテリア / デザイン雑貨とインテリアのまとめ。
分類待ちの文字がきれい。
→ どうやっているのかわからないから、調べてみると BeautifulJapaneseKit を使っているみたい。
→ 自分も使ってみたくなった。
ダウンロードから導入まで。
下記ページからダウンロード。
BJKit(BeautifulJapaneseKit)|その他アイデアマンズの製品・無料ツール|アイデアマンズ株式会社(ideaman’s Inc.)
※ダウンロード時のバージョンはVer.0.7.0
はてなブックマーク件数取得APIに新しいAPIが追加されたらしいので試してみた。
テーマの index.php とか single.php などの表示したい所に以下のコードを挿入する。
<a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>"> <script type="text/javascript" src="http://api.b.st-hatena.com/entry.count?url=<?php the_permalink() ?>&callback=document.write"></script> users </a>
はてなブックマークのような見た目にしたい場合は、strong タグをつけて、CSS を追加。
テーマのPHPファイルに追加
<strong class="hb_users"> <a href="http://b.hatena.ne.jp/entry/<?php the_permalink() ?>"> <script type="text/javascript" src="http://api.b.st-hatena.com/entry.count?url=<?php the_permalink() ?>&callback=document.write"></script> users </a> </strong>
スタイルシートに追加
strong.hb_users a:link, strong.hb_users a:hover, strong.hb_users a:visited { color: #F00 !important; background: #FCC !important; }
Google Code で提供されている API で Google検索結果を取得できる Google AJAX Search API ですが、検索結果をDBにキャッシュすれば、Google のサーバにも余計な負荷がかからないし、1日あたりのクエリ発行回数に制限があるはず(※)なので、その辺の問題を解消するためにも、どのようにすれば実装可能か考えていました。
※クエリ発行回数に制限については、2005年あたりの書かれている記事は1000回/1日とあるのですが、最近の記事の解説では見つけれないし、公式の利用規約にもそれらしい記述が見つけれませんでした。
正直、AJAX は用意されているAPIをそのまま実装する程度のことしかしたことがないので、なにをどこまで出来るとか突っ込んだことはよく分からないのですが以下の記事の見た感じ、JSONPというのを使えば簡単に出来るのではないかと気がしました。
次の様なURLをリクエストすればよいみたいです。詳しい解説は上記のリンク先を参照してください。
http://www.google.com/uds/GwebSearch?callback=handleWebResults&context=0&lstkp=0&rsz=10&hl=ja&q=%E4%BB%8A%E6%B2%BB%E5%B8%82&key=ABQIAAAA8sIaWMGpb7cFeAQjzNmTQhSgxx03qR9JK3UItoDYsuRdbT1gGBQC--KhlY0sbIlKGaHsZnC8e2m57A&v=1.0
JSONP というのはよく分かっていないけど、JSONは要求したデータを配列で返してくれるってイメージで、実際に参考サイトの通りのURLを叩いたら配列風のデータが返ってきたので問題ないでしょう。
使えれば問題ないのであまり突っ込んで調べないけど、JSONPは以下の記事に「JSONデータを括弧でくくった上でこっちが指定した文字列を頭につけて返してね?」と書かれているので多分間違いない。と思う。
zontheworld HTML convert time: 0.105 sec. ( Login )