今回の制作物
あんたのツイート要約したろか。 – 馬鹿ラッチ・ポータル(仮)
直近30件のツイートを約120文字に要約するというウェブアプリを作った。要約をそのまま自分のツイッターに投稿することも出来る。
使用したWebAPI
商品評判要約API |ソフト・アプリ開発のAPIなら【gooラボ】
主にPC関連商品やAV機器向けにチューニングしてある、と書いてあるが、取り敢えず使ってみる(笑) 乱雑な細切れのツイートをうまくまとめているとは思う。
作ったきっかけ
ツイッターなり、フェイスブックなどで、あなたの代わりにウェブアプリが投稿します、とか、サイトにログインします、という認証画面を見られたことがあると思うが、その仕組をOAuthという。その仕組を使って、ユーザーにログインしてもらうタイプのAPIを使用したウェブアプリを作ってみたかった。
制作に当って参考にしたサイト
TwitterOAuthでログイン認証をおこなう[OAuth][PHP]|ウェブの葉
最初はライブラリを使わず、OAouthの部分をべた書きしていたのだが、流石にめんどくさすぎたので、上記サイトに習って、ツイッターではおなじみのライブラリを使うことにした。ということで、ログインの流れはほぼ上記サイトにあるファイルを流用している。
工夫
上記サイトのログイン認証は各段階毎にページが遷移するオーソドックスなものだが、私の場合、ページ遷移をさせたくなかった為(WordPress内で設置する為、無駄なページ遷移を避けたかった)、「index.php」に表示箇所のHTMLの骨組みだけを書いておき、後は、別途用意したjavascritファイルで、AJAXを用いて、index.phpに動的にhtmlを書き出すことで対応した。
JqueryのAJAX操作が今回のアプリの一番のキモだと思うので、一応ソースをアップしておく。index.phpより下記javascript(JS)ファイルを呼び出す。JSファイルより、状況に応じて各PHPファイルを呼び出して、レスポンスとして貰ったHTMLをindex.phpに書き出してindex.phpのHTMLを動的に表示させている。ちなみにJSファイルの一番下にあるブロックは、ツイッター投稿時にテキストエリアに変更があった場合に見張っていて、ツイッターには変更後の文字列がツイート出来る。
残念なところ
ページ遷移型のテストページでは100%要約のテキストを抽出出来たのだが、AJAXバージョンでは、2回に1回ほど、WebAPIから答えが帰ってこない・・・。非同期通信ゆえに答えが帰ってこないうちからHTMLを書き出してしまうのか、とか色々考えるが、答えは出ない・・・よって完成度が低いのが難点。
ソース
使ってるものとは若干ファイルの位置関係が異なるものだが、一応アップしておく。
bono1972/tweet_summary | GitHub