Noël Café : Blog

Noëlの公開備忘録とひとりごと。コメント・トラックバックご自由に

Twitter APIとGoogle Apps Script 連携でツイート (備忘録)

前回のBlog投稿に引き続きTwitter APIとの戦いメモじゃなくて備忘録を。
今回はTwitter APIとGoogle Apps Scriptを連携し、
Twitterに投稿してみます。


流れ

  1. Google Apps Scriptを作成する>
  2. ライブラリTwitterWebService.gsの導入
  3. Chrome V8を搭載した新しいApp Script ランタイムを無効にする
  4. 連携認証のスクリプトを入力
  5. 作成してあるTwitter APIの内容を確認
  6. Twitter APIのkey, Secret keyを入手
  7. コールバックURLの入力
  8. Google Apps ScriptでTwitterアプリの認証作業
  9. Twitterに投稿

 

[手順1] Google Apps Scriptを作成する

Google Driveで新規Google Apps Scriptを作成する。
「新規」→「その他」→「Google Apps Script」
無題のプロジェクトが開きます。
すでにプロジェクトがある場合は適宜対応。

[手順2] ライブラリTwitterWebService.gsの導入

ライブラリTwitterWebService.gsの導入
Google Apps Scriptの画面 →「リソース」→「ライブラリ」
ライブラリのプロジェクトキー↓を入力し「追加」

1rgo8rXsxi1DxI_5Xgo_t3irTw1Y5cxl2mGSkbozKsSXf2E_KBBPC3xTF


バージョンは2、Dev.Modeは無効でOK

TwitterWebServiceソースコード at GitHub

[手順3] Chrome V8を搭載した新しいApp Script ランタイムを無効にする

Chrome V8を搭載した新しいApp Script ランタイムを無効にしておく
Google Apps Scriptの画面 →「実行」から設定できる。
タイミングによっては上の方に注意書きが出てきてそこで設定できる

[手順4] 連携認証のスクリプトを入力

連携認証のスクリプトを入力
とりあえず何も考えずに入力(笑)。

//認証用インスタンスの生成
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);
}

[手順5] 作成してあるTwitter APIの内容を確認

APIを作成していない場合は新規作成する。
Permission(権限)を確認する
Twitter Developer Portal → Projects & Apps から該当Appを開く
Settingsの中にあるApp permissionsのEditから開きやることを選ぶ。

[作業6] Twitter APIのkey, Secret keyを入手

Twitter API keyとAPI secret keyを確認し上のコードのxxxxxxxx部分に入力する。
Twitter Developer Portal → Projects & Apps から該当Appを開く
keys & Tokens, API key & Secretが見つかる。
作成後しばらくすると表示できなくなり再作成しないといけなくなるので注意。
ついでに他のところも問題なさそうか確認する。

[作業7] コールバックURLの入力

  1. Google Apps ScriptのスクリプトIDを取得
    Google Apps Scriptの画面 →「ファイル」→「プロジェクトのプロパティ」→「情報」→「スクリプトID」
  2. コールバックURLは以下になる
    https://script.google.com/macros/d/スクリプトID/usercallback
  3. Twitter APIの設定画面にあるコールバックURLに上のアドレスを入力しSave
    2020/10/11現在以下にありました。
    Twitter Developer Portal → Projects & Apps から該当Appを開く
    Settings → Authentication settingsのEdit → Callback URLs

[作業8] Google Apps ScriptでTwitterアプリの認証作業

  1. authorize関数実行
    Google Apps Scriptの画面 →「関数の選択」で「authorize」を選択し実行▶︎
  2. ログから認証用URLを取得
    Google Apps Scriptの画面 →「表示」→「ログ」
    https://api.twitter.comから始まるURL
  3. 認証用URL(上で取得)をブラウザで開く
    認証画面が出るので内容を確認(できること/できないこと)し認証
    成功するとSuccessと表示される。
    閉じてOK。

[作業9] Twitterに投稿

ようやくメイン作業です(笑)。

  1. Google Apps Scriptに以下を追記

    // twitterへ投稿
    function post_tweet(){
      var my_message = "テスト投稿です。";
      var service  = twitter.getService(); //TwitterWebServiceのインスタンス
      var response = service.fetch("https://api.twitter.com/1.1/statuses/update.json", {
        method: "post",
        payload: { status: my_message }
      });
    }

  2. post_tweet関数実行
    Google Apps Scriptの画面 →「関数の選択」で「post_tweet」を選択し実行▶︎
  3. これでTwitterに投稿されているはずです。

このスクリプトですが、
function post_tweet(my_message)にしてvar my_messageの行を削除すれば、
同じプロジェクト内から呼び出せる関数になって便利です。

とりあえず今日は文章のみの投稿だけで終わります。

Reference

 

余談

こういうことをやりたい!と思って調べても、
なぜか1箇所だけで完結しないんですよね。
ドコも私がキモとかポイントだと思ったことが書いていない。
だから、自分がつまづいたところをメインに備忘録にしておくんだけどさ。

Leave a Reply

*


CAPTCHA



Trackback URL