読者です 読者をやめる 読者になる 読者になる

YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

Google Apps API Japan Group #1でLTしました

GAS Event

はじめに

こんにちは、Python界の情弱選手権日本代表です。昨日Google Apps API Japan Group #1というキックオフイベントがあったんですが、そこでGoogle Apps Scriptにはチュートリアルがたくさん用意してありますよ、という紹介をしてきました。その例として簡単なTwitterクライアントを作ったので紹介します。

参考

このサンプルを使うと簡単にTwitterクライアントを作ってみることが出来ます。(きちんと理解するのであれば他のチュートリアルも是非ご覧ください)

Google Apps API JapanのGoogle Groupsです。是非参加して下さい!

チュートリアルの中身

このチュートリアルではいくつものサンプルを組み合わせたものとなっています

  1. メニューバーに項目を追加する
  2. OAuthを使った認証を行う
  3. コールバック先としてGoogle Apps Scriptを公開する
  4. GmailにTweet承認メールを投げる
  5. 最後の承認が降りたらTwitterに投稿する

他サービスとの連携やワークフローの実現などが見られる良いサンプルだと思います。

LTで使ったサンプル

今回のLTではこのサンプルをちょっとだけ変更してTwitterにポストするだけの機能を追加しました。もとのスクリプトはこちらのSpreadSheetをコピーして確認してみてください。(チュートリアルでも使います)あと初期設定(Twitterへのアプリケーション登録や、OAuthのSecret Keyの取得処理など)はチュートリアルに書いてあるとおりやってみてください。

で、LTでやったのはonOpen()のメニュー追加部分と、tweetComment(), tweetAnonymousComment() という関数を加えただけ。さらに言えば、tweetComment()の内容はdoGet()の中身をコピペしただけです。

/** When the spreadsheet is opened, add a Twitter menu. */
function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "AnonTweet", functionName: "tweetAnonymousComment"}, // 追加したよ
                      {name: "Tweet", functionName: "tweet"},
                      {name: "Configure", functionName: "configure"}];
  ss.addMenu("Twitter", menuEntries);
}

// 追加したよ!
function tweetAnonymousComment() {
  var tweet = Browser.inputBox("業務報告", "ほうれんそう!!", Browser.Buttons.OK);
  tweetComment(tweet);
}

function tweetComment(tweet) {
  authorize();
  var encodedTweet = encodeURIComponent(tweet);
  var requestData = {
    "method": "POST",
    "oAuthServiceName": "twitter",
    "oAuthUseToken": "always"
  };
  try {
    var result = UrlFetchApp.fetch(
        "https://api.twitter.com/1/statuses/update.json?status=" + encodedTweet,
        requestData);
  } catch (e) {
    Logger.log(e);
  }
}

するとこんな感じになりました。
f:id:ymotongpoo:20110713173047p:image
でもって
f:id:ymotongpoo:20110713173048p:image
からの

f:id:ymotongpoo:20110713173049p:image
投稿できました!

おわりに

こんな具合にGoogle Apps Scriptのヘルプにはちょろっと関数を追加しただけで遊べてしまうようなチュートリアルが盛りだくさんです。興味を持っていただけたら是非チュートリアルに挑戦してみてください!
また#1と付いている通り、これからもGoogel Apps API Japan Groupでイベントを企画していくので是非Google Groupsの方にも参加していただいて、次回は参加してみてください!