はじめに
こんにちは、Python界の情弱選手権日本代表です。昨日Google Apps API Japan Group #1というキックオフイベントがあったんですが、そこでGoogle Apps Scriptにはチュートリアルがたくさん用意してありますよ、という紹介をしてきました。その例として簡単なTwitterクライアントを作ったので紹介します。
参考
このサンプルを使うと簡単にTwitterクライアントを作ってみることが出来ます。(きちんと理解するのであれば他のチュートリアルも是非ご覧ください)
Google Apps API JapanのGoogle Groupsです。是非参加して下さい!
チュートリアルの中身
このチュートリアルではいくつものサンプルを組み合わせたものとなっています
- メニューバーに項目を追加する
- OAuthを使った認証を行う
- コールバック先としてGoogle Apps Scriptを公開する
- GmailにTweet承認メールを投げる
- 最後の承認が降りたら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); } }
- @ymotongpoo / 腰が痛い
おわりに
こんな具合にGoogle Apps Scriptのヘルプにはちょろっと関数を追加しただけで遊べてしまうようなチュートリアルが盛りだくさんです。興味を持っていただけたら是非チュートリアルに挑戦してみてください!
また#1と付いている通り、これからもGoogel Apps API Japan Groupでイベントを企画していくので是非Google Groupsの方にも参加していただいて、次回は参加してみてください!