2024.6.2追記
現在この方法ではできません。
Twitter APIとGoogle Apps Script 連携でツイート Ver.2024 (備忘録) へどうぞ。
前回のBlog投稿に引き続きTwitter APIとの戦いメモじゃなくて備忘録を。
今回はTwitter APIとGoogle Apps Scriptを連携し、
Twitterに投稿してみます。
目次
Step 一覧
Google Apps ScriptでTwitterに投稿する方法を4回に分けて掲載しています。
- Twitter API登録方法 (備忘録)
- Twitter APIとGoogle Apps Script 連携でツイート (備忘録) ← 今ココ
- Google Apps ScriptでTwitterにスレッド(返信)投稿 (備忘録)
- Google Apps Scriptで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の入力
- Google Apps ScriptのスクリプトIDを取得
Google Apps Scriptの画面 →「ファイル」→「プロジェクトのプロパティ」→「情報」→「スクリプトID」 - コールバックURLは以下になる
https://script.google.com/macros/d/スクリプトID/usercallback - Twitter APIの設定画面にあるコールバックURLに上のアドレスを入力しSave
2020/10/11現在以下にありました。
Twitter Developer Portal → Projects & Apps から該当Appを開く
Settings → Authentication settingsのEdit → Callback URLs
[手順8] Google Apps ScriptでTwitterアプリの認証作業
- authorize関数実行
Google Apps Scriptの画面 →「関数の選択」で「authorize」を選択し実行▶︎ - ログから認証用URLを取得
Google Apps Scriptの画面 →「表示」→「ログ」
https://api.twitter.comから始まるURL - 認証用URL(上で取得)をブラウザで開く
認証画面が出るので内容を確認(できること/できないこと)し認証
成功するとSuccessと表示される。
閉じてOK。
[手順9] Twitterに投稿
ようやくメイン作業です(笑)。
- 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 }
});
}
- post_tweet関数実行
Google Apps Scriptの画面 →「関数の選択」で「post_tweet」を選択し実行▶︎
これでTwitterに投稿されているはずです。
このスクリプトですが、
function post_tweet(my_message)にしてvar my_messageの行を削除すれば、
同じプロジェクト内から呼び出せる関数になって便利です。
とりあえず今日は文章のみの投稿だけで終わります。
Next Step
次はスレッド投稿(返信)をします。
Reference
- Google Apps Script (GAS) でTwitterへ投稿するだけの機能を実装してみる at Qiita
- GAS(Google Apps Script)でTwitterへの定期自動投稿
- Google Apps ScriptでTwitterに投稿するスクリプト(GAS×TwitterBot④) at もりさんのプログラミング手帳
余談
こういうことをやりたい!と思って調べても、
なぜか1箇所だけで完結しないんですよね。
ドコも私がキモとかポイントだと思ったことが書いていない。
だから、自分がつまづいたところをメインに備忘録にしておくんだけどさ。
Leave a Reply