Mmemo

PC作業に関するメモ

Twitterでいいねをしたツイートに含まれる画像を自動的にGoogleDriveに保存する手法

概要

Twitterでいいねをすると、自動的にTweetに添付されている画像をGoogleDriveの任意のフォルダに保存するシステムの構築。
Twitter API、Google Apps Script、IFTTTのサービスを利用する。

IFTTTからのみだとTweetの一枚目の画像しか取得できないので、まずIFTTTからTweet自体のURLを取得してGASに送り、GAS内でTwitter APIを利用して各添付画像のURLを取得するという手法をとっている。

手順

GASでTwitterAPIを使う準備をする

TwitterAPIの利用準備

TwitterAPIの登録申請を行う。いいねを行うアカウントで登録すること。
※方法はネット上に解説があるのでそれを参考に。

GASのプロジェクトにライブラリを導入する

OAuth1.0a認証のためのライブラリを使用する。
https://github.com/googleworkspace/apps-script-oauth1

ライブラリの追加画面にてスクリプトIDの欄に
1CXDCY5sqT9ph64fFwSzVtXnbjpSfWdRymafDrtIZ7Z_hwysTY7IIhi7s
と入力し、検索、追加をクリック。バージョンは最新のものを使用(今回は18)。
ライブラリにスクリプトIDを入力する

Twitter App側にリダイレクトURLを設定する

CallbackURL:
https://script.google.com/macros/d/{SCRIPT ID}/usercallback

アクセストークンを入手する

GASのプロジェクトで以下のようなコードを書き、デプロイし、ウェブアプリのURLにアクセスする。
「認証する」というリンクが表示されるのでクリックし、Twitterとの連携を行う。

GAS側のメイン処理を書く

保存先のフォルダIDはGoogle driveで指定フォルダURLの最後尾にある英数字の羅列。
コードを入力した後は忘れずにデプロイをして最新のウェブアプリのURLをコピーしておく。

プロジェクトの全体図

IFTTT側の準備をする

以下のようにアプレットを新規作成する。
Twitter側ではいいねをするアカウントを設定する。
「Make a web request」側のURLの欄には上記でコピーしたウェブアプリのURLを入力する。
ifttt画面1
ifttt画面2

準備完了

後はTwitter上でいいねをするだけで自動的にGoogleDriveへ画像が保存される。
IFTTTの発火は遅れることもあるので注意。

参考URL

[GAS] GoogleAppsScriptでTwitterbotを作る