2011年9月8日木曜日

Twitterの検索結果をGoogle Docsのスプレッドシートに取り込む

Twitterでは、Web画面の検索ボックスからツイートの検索が簡単にできますが、結果をより詳しく分析したり、保存しておきたい時などがあります(よね?)。
もちろん、検索結果をコピペしたり、別のサービスをつかったりすることで可能ですが、Google Appsを使っている方であれば、非常に簡単に、ツイートをスプレッドシートに取り込むことができます。
手法としては、Excelのマクロのような「Google Apps Script」を利用します。
なんだか難しそうだなぁと思いました?いやいや、全然簡単です。

まずはGoogle Apps のドキュメントから、新しいスプレッドシートを作成してください。
シートが開いたら、上部にあるスプレッドシートの名前欄に名前を入力しましょう。
名前は何でも良いのですが、今回は「Twitter検索」ということにします。
「OK」を押して名前を付けたら、いよいよGoogle Apps Scriptを作成します。
「ツール」メニューの中から「スクリプトエディタ...」を選択します。
新しくスクリプトエディタのウィンドウが開きます。
右側のコードという場所に、デフォルトでfunction myFunction()と書かれていると思います。
今回は、このmyFunctionという関数の中に、Twitterの検索APIを記述していきます。
とはいえ、以下のコードをコピペしてもらえばOKです。
  var query = Browser.inputBox("検索ワードを入力してください");
  query = encodeURIComponent(query);
  if (query != "") {
    var response = UrlFetchApp.fetch(
      "http://search.twitter.com/search.json?q="+query+"&rpp=100");
    var jsonString = response.getContentText();
    var object = Utilities.jsonParse(jsonString);
    var ss = SpreadsheetApp.getActiveSheet();
    var cell = ss.getRange("A1");
    var row = 0;
    for (var i=0; i < object.results.length; i++) {
      var result = object.results[i];
      var col = 0;
      var dd = new Date(result.created_at);
      cell.offset(row, col++).setValue(dd.toLocaleString());
      cell.offset(row, col++).setValue(result.from_user);
      cell.offset(row, col++).setValue(result.text);
      row++;
    }
  }

コードの中身の説明は今回はしませんが、簡単にいえば、検索したい語句を入力してもらって、それをキーにTwitterの検索APIを呼び出し、結果(今回はmax100件)をシートに貼り付けるというものです。
コピペが完了すると、だいたいこんな感じになります。
クリックすると拡大
画面が小さくて分かりづらいかも知れませんが、コピペをする位置は、function myFunction(){の次の行からです。
では保存します。「ファイル」メニューから「保存」を選択するか、フロッピーディスクのアイコンを押します。

新規保存の場合は、名前をつける必要があります。プロジェクト名は、「twitterSearch」としておきましょう。
「OK」ボタンを押せば完成です!
ほらね、超簡単でしょ?

後は実行してみるだけです。
「Run」メニューから「myFunction」を選択します。
この時、スクリプトエディタが画面の中央に表示されていると、入力ダイアログボックスが隠れてしまうので、スクリプトエディタのウィンドウは最小化しておくと良いです。
このようなダイアログが表示されるので、検索したい語句を入力して「OK」ボタンを押してみましょう。
しばらくすると、シートに検索結果が(あればですがw)表示されます。

今回は、本当に基本的な機能だけに絞っていますが、Google Apps Scriptを使えば、このように外部のWebサービスからデータを取得することが簡単にできます。
また、スクリプトをタイマーで自動起動するようなことも可能ですし、その結果をGoogle Siteのページとして作成したり、メールで送信することもできます。

もしGoogle Apps Scriptなどを使って、こんなことがしてみたいといったご要望があれば、ぜひお気軽にお声がけください。

0 件のコメント:

コメントを投稿

必ず返信しますので、できればお名前をお書きくださいませ。
※URLは未記入で構いません。