Skip to content

Instantly share code, notes, and snippets.

@tateren
Last active June 2, 2017 16:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tateren/a4cb9a6c1931f58e975b8dbdca9e0b1b to your computer and use it in GitHub Desktop.
Save tateren/a4cb9a6c1931f58e975b8dbdca9e0b1b to your computer and use it in GitHub Desktop.
スプレッドシートに書き込まれたTweetURLからGoogleドライブに画像を保存する

設定方法

IFTTTの設定

  1. IFTTTで以下のレシピを作る。
Trigger: New liked tweet by you
Action: Add row to spreadsheet
  Spreadsheet name: お好みで
  Formatted row: {{LinkToTweet}}
  Drive folder path: お好みで

Google Apps Scriptの設定

  1. IFTTTから書き込みをするスプレッドシートのツール→スクリプトディタを開く。
  2. saveImageFromTweetURL.gsのコードを貼りつける。
  3. 編集→現在のプロジェクトのトリガーを開いて以下の設定を保存する。(認証が必要なので許可する)
実行: main
イベント: スプレッドシートから値の変更

実行方法

画像付きTweetをlikeするとGoogleドライブのルートディレクトリに画像が保存される。

処理結果に応じてスプレッドシート上のリンクURLに色が付く。

  • 画像の保存に成功した場合→緑色
  • 画像URLが見つからなかった場合→赤色

その他

  • Twitterの機能でアップロードされた画像だけが対象。
  • 気が向いたら本文中に含まれる画像URLとかからも拾えるようにしたい。
  • 保存先を指定できるようにしたい。
  • 1シート2000行までしか追記できないので処理した行は退避させたい。
function main() {
var activeCell = SpreadsheetApp.getActiveSheet().getActiveCell()
var url = activeCell.getDisplayValue().replace(/http/, "https");
var params = {
"followRedirects" : false
};
var HTTPResponse = UrlFetchApp.fetch(url, params);
var imageURLs;
if (imageURLs = HTTPResponse.getContentText().match(/https.*:large/g)) {
var folder = DriveApp.getRootFolder();
for (var i = 0; i < imageURLs.length; i++){
var blob = UrlFetchApp.fetch(imageURLs[i]).getBlob();
var file = folder.createFile(blob);
var name = file.getName().replace(/:large/, "");
file.setName(name);
}
activeCell.setFontColor("#00BF00");
} else {
activeCell.setFontColor("#BF0000");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment