特定のハッシュタグを付けたInstagramの写真や動画を日次メール送信するGoogle Apps Script

f:id:akulog:20140706140654p:plain

みんな大好きInstagram!!

かわいいお子さんの写真を取り貯めていませんか?でも、ジージ&バーバにいちいちメール転送するのも面倒くさい。僕はそうでした。子供たちの写真は物凄く沢山撮っているのに、自分の両親に送るのは面倒で、というか撮ったらそれで自己満足的自己解決してしまっていました。しかし、親父からボソっと言われるんですね。

たまには孫の写真でも送ってくれよ

と…視覚障害者なのに…(ちょっとだけまだ見えていますが)

どんな仕組みなのか?

以下の通りです。

  1. Instagramに#send2gpというタグを付けた投稿を対象にします。
  2. 夜中の0時〜1時にスクリプトが実行されます。
  3. 実行された日の前日分、つまり前日の0:00:00から23:59:59の投稿を対象とします。
  4. 長男と二男を#tokiboys1と#tokiboys2というタグで判別します。
  5. 対象の写真及び動画をメールに添付して任意の送り先に送信します。

なお、#send2gp、#tokiboys1、#tokiboys2タグは任意のものにしていただけます。ちなみに実際に運用中のメールは以下です。

f:id:akulog:20140706141922p:plain

Instagram APIのアクセストークンを取得

今回もGoogle Apps Scriptで書きますが、Instagramからのデータ取得に際してInstagram APIを利用します。というか利用しないと出来ません。ですので以下を参考にアクセストークンを取得してください。

  1. http://instagram.com/developer/にアクセス
  2. 「Register Your Application」をクリック
  3. 「新しいアプリを登録」をクリック
  4. Application Name :アプリ名(半角英字)で。InstaとかGramとかInstagramとかIGとかが入らなければなんでもOK
  5. Description :アプリの説明
  6. Website :適当にブログのURLでも
  7. OAuth redirect_uri :ユーザーがアプリ認証を行わなかった場合のリダイレクト先。適当でOK(自分しか使わないから)
  8. 「Register」をクリック(Captchaあり)
  9. 作成されたアプリをhttp://instagram.com/developer/clients/manage/で確認するとCLIENT IDを後で使うのでどこかにコピペする

入手先(ソース)

以下からDLしてください。

send2gp.js - Google ドライブ

主な修正箇所は以下の通りです。ローカルであらかじめ設定しておきましょう。

  1. TAG_NAME :初期値はsend2gp
  2. CLIENT_ID : 先ほど作成したInstagramアプリのCLIENT_ID
  3. toEmail、thisSubject、thisBody :メール送信先、タイトル、本文

メールに添付されるファイル名の命名規則に関して

  1. Instagramのキャプションからハッシュタグを除去
  2. .jpgもしくは.mp4という形式(日本語名)で保存
  3. 作成日(YYYY.MM.DD_)を頭に付与
  4. 長男と二男の名前を#tokiboys1、#tokiboys2で置換して「長男名_」と「二男名_」を作成日の後ろに付与

例)

今日は暑いから海水浴!! #send2gp #tokiboys1 #tokiboys2

は以下になります。

2014.07.06_長男名_二男名_今日は暑いから海水浴!!.jpg

これはウチの父がスクリーンリーダーでファイルを管理しやすい様に意識したものです。オレオレ仕様です。変更したい場合はrenameFilesという関数の中の以下を任意に変更してください。

  // 写っている孫特定用タグ
  var REM_TAG1 = ' #tokiboys1'; // 長男
  var REM_TAG2 = ' #tokiboys2'; // 二男  
  //変換(画像を保存する時にファイル名に入れる)
  var REP_TAG1 = '長男名_'; // 長男の名前
  var REP_TAG2 = '二男名_'; // 二男の名前

人物名の挿入部いらないぜ!という方は以下部分をまるごと削除していただいてもOKです。

  // 写っている孫特定用タグ
  var REM_TAG1 = ' #tokiboys1'; // 長男
  var REM_TAG2 = ' #tokiboys2'; // 二男  
  //変換(画像を保存する時にファイル名に入れる)
  var REP_TAG1 = '長男名_'; // 長男の名前
  var REP_TAG2 = '二男名_'; // 二男の名前
  // REM_TAG2が含まれていればREP_TAG2を追加
  if(captionTxt.indexOf(REM_TAG2) !== -1){
    captionTxt = REP_TAG2 + captionTxt;
  }
  // REM_TAG1が含まれていればREP_TAG1を追加
  if(captionTxt.indexOf(REM_TAG1) !== -1){
    captionTxt = REP_TAG1 + captionTxt;
  } 

Google Apps Scriptの作成

修正したjsファイルの中身を新しく作成したGASにペーストしてください。

  1. 新規GAS作成

f:id:akulog:20140706151615p:plain

  1. とりあえず名前を付ける(send2gpとしている)

f:id:akulog:20140706151708p:plain

  1. jsファイルの中身をそのままコピペ

f:id:akulog:20140706151823p:plain

  1. send2gpを一度実行して承認する(承認は割合)

f:id:akulog:20140706152055p:plain

  1. タスクを仕込む。リソース→現在のプロジェクトのトリガー

f:id:akulog:20140706152201p:plain

  1. send2gp→時間主導型→日タイマー→午前0時〜1時

f:id:akulog:20140706152313p:plain

とまぁ、こんな感じ

相変わらずのオレオレGASですが、良かったらどうぞお使いください。

InstagramersFile(インスタグラマーズ・ファイル)

InstagramersFile(インスタグラマーズ・ファイル)

© 2020 時藤屋 all rights reserved.