Twitterに自動投稿するbotをGoogle App Scriptで自作する #1

 せっかくロボットについてブログにしているので、自分でもロボットライクなものを作った記録を残しておこうと思います。

 こんな人に読んでもらいたいです。

 ・JavascriptはいじれるけどゼロからTwitterのAPIを作成することは出来ない

 ・プログラミングに興味はあるけど、何から始めたらよいか分からない

 ・趣味などで運用しているTwitterアカウントがあって自動化したい

Google App Scriptベースで、基本は無料で出来るので誰でも安心して始められると思います。が、スクリプトの起動時間や回数などに制限があるので、プロ仕様の使い方をしたい場合はもう少し専門的なサービスを使った方が良いかもしれません。

 

全体の流れ

 前置きが長くなりましたが、全体の流れについて説明します。API導入までの流れはこんな感じです。

  1. Twitterアカウントを作成する(ありものでOK)
  2. Twitter Developer アカウントを作成し、Twitter APIキーを取得する
  3. Google App ScriptにTwitter Web Service ライブラリを導入する
  4. Google App Script にアプリの連携認証をする
  5. スクリプトを書き込む

1個ずつはググると見つかりますが、古かったり色々するので改めてまとめていきたいと思います。

1. Twitterアカウントを作成する(ありものでOK)

 こちらは説明するまでもないと思いますが、TwitterをGoogleなどの検索エンジンで開き、アカウント作成をしてください。既存のアカウントでも全然問題ありません。

2.Twitter APIキーを取得する

 Google Spread Sheetをなんでもいいので一つ作成します。

 『拡張機能』>『App Script』をクリックします。

 すると、AppScriptのウィンドウが立ち上がるので、左側のメニューバーの中から『ライブラリ』と書かれている列の『+』マークをクリックします。

そこに、プロジェクトキー: 1rgo8rXsxi1DxI_5Xgo_t3irTw1Y5cxl2mGSkbozKsSXf2E_KBBPC3xTF

を入力します。ライブラリのバージョンは最新のものを選べば大丈夫です。場合によっては何か追加で聞かれる可能性もありますが、基本的に全部OKしてしまって大丈夫です。

最後に、作成したスクリプトのスクリプトIDを確認し、メモ帳かspread sheetのどこかにコピーしてください。 

スクリプトIDの調べ方が分からないときはこちらの記事を参考に調べてください。

3.Twitter Developer アカウントを作成する

Twitter Developer Portal

にアクセスし、APIキー(Consumer Key)を取得します。

左のメニューバーの中から、『Projects & Apps』を開き、『+ Add App』をクリックして必要事項を入力します。
「Consumer Key (API Key)」「Consumer Secret (API Secret)」が自動生成されますので、そちらをコピーして保存しておいてください。このあと"4"のプロセスで使用します。
アクセストークンでは無いのでご注意を。

この時、コールバックurlを設定します。

https://script.google.com/macros/d/[GASのスクリプトID]/usercallback 

の[]の中に、2で調べてメモっておいたスクリプトIDを入力し、https:から始まるurl全体をコールバックurlとして保存します。

4.Google App Script にアプリの連携認証をする

下記をいずれかのスクリプトに記載します。xxxxxxxxの所には、"3"のプロセスで取得した情報を記載してください。

//認証用インスタンスの生成
var twitter = TwitterWebService.getInstance(
  'xxxxxxxxxx',//API Key
  'xxxxxxxxxx'//API secret key
);
 
//アプリを連携認証する
function authorize() {
  twitter.authorize();
}
 
//認証を解除する
function reset() {
  twitter.reset();
}
 
//認証後のコールバック
function authCallback(request) {
  return twitter.authCallback(request);
}


保存が出来たら、『authorize()』を実行します。上のバーに『▷実行』と言うボタンがありますので、その右側にある関数名がauthorizeになっていることを確認してからクリックしてください。その後、Google App Script の画面からログを確認すると、「http://api.twitter.com/......」と言うログが残っていますので、それをコピーしてブラウザのurl欄に貼り付けてEnterを押します。

すると、Twitterのログインの画面が出ます(ログイン情報がブラウザに記憶されている場合は出ないです)ので、ログインしてアカウントの利用を許可してください。

上手くいくと、ブラウザの画面に「success」と表示されます。

 5.スクリプトを書き込む

下準備はこれまでです。新しいスクリプトファイルを用意して、下記をコピペしてください。
function postTweet() {
  
  var service  = twitter.getService();
  var endPointUrl = 'https://api.twitter.com/1.1/statuses/update.json';
  
  var response = service.fetch(endPointUrl, {
    method: 'post',
    payload: {
      status: 'Hello World'
    }
  });
}
 

 
 保存が出来たらpostTweet()の関数を実行してください。Twitterの自分のアカウントでHello Worldと投稿されているはずです。
既にフォロワーがいっぱいいるアカウントでやる場合は、
statusの中に入っている文字列を何も知らない人が見てもびっくりしないような投稿内容に変更してください。「疲れたー」とかなら問題無いかと思います。
 

まとめ

どうでしたでしょうか?結構簡単だったと思います。TwitterとGoogleのアカウントが最初からあれば10分くらいで全部できちゃうのではないでしょうか?
次回はこれを元に自動でTweetする本当のbotに改造していきたいと思います。

次回は自動での投稿を設定してきます。
こちらの記事をご覧ください。

コメント