はじめに
今回は自動ツイートについての第2回目となります。
課題を忘れないように毎回冒頭に書いておきますね。
今回の課題
- 自動的にツイートさせたい。
自動ツイートは以下のステップで実現します。
- IFTTTとTwitterを連携し、IFTTTのWebhookにPOSTしたらツイートさせる
- GASからIFTTTのWebhookにPOSTさせたらツイートする
- スプレッドシートにツイートリストを作成し、上から順番に定期的にツイートさせる
- スプレッドシートの最終行までツイートしたら、先頭に戻ってツイートする
今回は②について説明します。
第1回で準備したWebhookをGoogle Apps Scriptから呼び出してツイートできるところまでを実現します。
IFTTTでWebhookとTwitterを連携する事前準備が完了していない方は、前回の記事を見て作業を完了させてから今回の記事を確認してください。
では、見ていきましょう。
GASからツイート
全てのコード
Google Apps Scriptで新しいスクリプトを作成して、以下のコードをコピペしましょう。
/*-------------------------------------------------
ツイートテスト用関数
msgを変えることでツイートの内容が変わる。
---------------------------------------------------*/
function test(){
msg = '今朝も4時に起きてジムに行き、ジョグと筋トレした。身体も頭もすっきりで気分上々です。';
tweet(msg);
}
/*-------------------------------------------------
ツイート関数
引数msgの内容をツイートする。
UrlFetchApp.App()に与えるURLはIFTTTのトリガーに設定した
WebhookのURLを指定する。
2022/02/06 created by N.Sekiya
---------------------------------------------------*/
function tweet(msg) {
// body作成
let body = {
'value1': msg,
// value2: '',
// value3: ''
};
// option作成
let opt = {
'method': 'POST',
'contentType': 'application/json',
'payload': JSON.stringify(body)
};
let res = UrlFetchApp.fetch(`https://maker.ifttt.com/trigger/<Event nameを指定>/with/key/<KEYを指定>`, opt);
}
UrlFetchApp.fetch()で呼び出すURL中の「<Event nameを指定>」の部分は、IFTTTのWebhookで指定したEvent nameを入れます。以下の画像の一つ目の矢印ですね。
また、コード中の「<KEYを指定>」の部分は、IFTTTのWebhookのテストをしたときに指定されたKEYです。以下の画像中の「Your key is:」の後ろの隠されている部分が該当します。
POSTするURLは、Webhookのテスト画面中の「Make a POST or GET web request to:」の次の行に記載されている内容に同じです。
IFTTTのアクション設定で、TwitterにはWebhookでPOSTするbodyのValue1で指定する内容をツイートする設定にしていたので、コード中ではValue1にツイート内容を格納しています。
実行してみよう
コードの準備が終わったら、test()関数のmsgをツイートしたい内容に変更してtest()関数を実行してみましょう。
スクリプトを実行する前には、いつもの通り権限を付与しろとか言われるので、言われるままに権限を付与してあげます。
結果は以下の通り。
ちゃんとツイートされましたね。
まとめ
いかがでしたでしょうか。
Google Apps Scriptからツイートできることが確認できたかと思います。
ここまでできれば、あとはスプレッドシートに列挙された内容を上から順番にツイートさせるようにスクリプトを組むだけですね。
この続きは次回説明します。
では、今日も良い一日を。