けんぼうは留年生

ノンジャンルで何か書きたくなった時に書く感じ

Google Apps ScriptでTwitterのBotを作る話

 さて、梅雨が明けそうで中々明けず湿度の厳しい昨今、いかがお過ごしでしょうか。さて、世間では何やら野生動物を乱獲するゲームが大流行しているようで、外に出ると人間の群れを多数観測することが出来ます。なんでもあのゲームを作った会社は任天堂ではなくあのIngressを運営するNianticだそうで、NianticGoogleから出て来た会社。Googleと言えばGoogle Apps Scriptと綺麗につながったところで本題です。

Google Apps Script とは

 Googleドライブ上で走らせることの出来るスクリプト、言語はjavascriptです。Googleドライブ上のファイルを扱ったり、GMailやカレンダー等の他のGoogleサービスとも通信できちゃうすごいやつです。手動で動かすだけでなく時間を設定して定期的に動かすなんてことも可能ですし、スプレッドシート*1等のドキュメントファイルを開いた時に動くみたいなことも出来ます。
詳しくは公式ドキュメントをどうぞ。
Calendar Service  |  Apps Script  |  Google Developers

Twitterと連携しよう

 Google Apps Script はHTTP/HTTPSアクセスが出来、OAuthプロトコルをサポートしています。ということはつまりTwitterと連携できる。実はこれもうあります。
http://yoshiyuki-hirano.hatenablog.jp/entry/2015/10/13/010317yoshiyuki-hirano.hatenablog.jp

実際に作ってみる

1.ファイルを作る

まず、スプレッドシートを用意し、そこにスクリプトを追加します。スクリプトを単体で用意しても良いのですが、スクリプトは静的な情報以外は起動する度にリセットされてしまうため、外部の記録ファイルとしてスプレッドシートを使うと非常に都合が良いのです。

2.Twitter連携の設定とかその辺をよろしくやる

さっき貼ったブログに手順書いてあるから、それ読んで概ねこんな感じでよろしくやってください。

3.Twitterの認証を通す

さっき貼ったブログの「コードの実装例」をそのまま持ってくるのが良いでしょう。簡単な物なので自分で書いても良いです。とにかく2で確認したConsumer KeyとConsumer Secretをコードに埋め込み、twitter.authorize()を実行する関数を作り手動で実行してください。手動で実行するにはコードを一旦保存してから上部プルダウンメニューから関数名を選択し、その右脇の三角形のボタン押せば行けます。最初に関数動かす時は「外部に接続するけど本当に大丈夫か?」と聞いてきます。

画面上方に「実行中です」的なメッセージが出て、問題がなければやがて自然に消え、実行が滞り無く完了したことになります。認証するにはいつものあのtwitterアプリ認証画面に飛ぶ必要があります。ログにそのURLが出ているのでコピペしてアクセスしましょう。ログはエディタ画面でCtrl+Enterを押すか[表示]→[ログ]で出ます。

簡素なページにSuccessとだけ出たら成功です。

4.色々やる

とりあえず認証通ったらやりたい放題です。やりたい放題なんですが、ここまで書いて力尽きたんで続きはまた今度書きます。続きでは実際にあんなことやこんなことをやりたいと思います。とりあえず僕が作ったやつだけGitHubに置いときます。
github.com

*1:Googleのエクセルみたいな奴