見出し画像

【Amazonプライムユーザ向け】次の週末なにみよう?ツイートを自動収集してGoogleスプレッドシートにおすすめ映画リストを作成してみた

「もうお家でやることないー!!!」

みなさま土日はいかがお過ごしでしたでしょうか?最近までは「早く次の休みにならないかなー」と思っていたのが、「次の休み、何して過ごそう…」に変わるなんて。

外出自粛の味方、Amazonプライムビデオ。今回はプライムビデオのツイートを自動収集してGoogleスプレッドシートでプライムビデオリストを作成する仕組みを作りました。

これで「週末何しよう」の検討コスト削減を図ります。

1. 何を自動化するのか

プライムビデオ、かなりの量のコンテンツがあり、何を見るかを決めるのにも一苦労。そこでおすすめなのが「filmarks prime」でツイートを検索

するとこんな風に映画好きたちのおすすめのプライムビデオ配信映画が出てきます!
ですが平日のツイートを追い続けるわけにもいきません。ということで、GASと弊社のノンコーディング連携ツール(今回は2分で設定完了しました!)とでそれぞれ下記の仕組みを作ってみました。

◆仕組み化したこと
1.「filmarks prime」で検索に引っかかるツイートを自動取得してGoogleスプレッドシートにリスト化
2.金曜夜20時にリストのURLをSlackに通知

これで金曜の夜にリストを眺めて土日の過ごし方を決めてしまおうという作戦です。

こんなリストが完成します!

スクリーンショット 2020-04-07 19.26.43

2. Google Apps Scriptで実装してみる

まずはいつも通り、"GAS"で頑張って実装してみます。
(コーディングできないので参考にならない!という方は、3. もっと簡単に、ノーコーディングで実装してみる!まで読み飛ばしてください!)

下記の記事を参考に作成しました。

 2-1. Twitter APIのキーを取得する

まずはAPIキーを取得します。Twitter Application Management にアクセスし、
「Consumer Key (API Key)」「Consumer Secret (API Secret)」を入手します。これが意外と大変で、Twitter社から承認を得る必要があります。

下記の記事で詳しく説明されているのでこちらを参照ください。

ちなみに、下記のような画面に遷移した方は「Create an app」をクリックすると手続きを進めるページに移ります。

スクリーンショット 2020-04-07 10.49.30

 2-2. スプレッドシートの準備

スクリーンショット 2020-04-07 12.02.33

投稿時間・内容・IDが格納されていくカラムを設けました。

また最後に取り込んだツイートのIDを常にD2セルに格納するようにlastidというカラムも設けています。ここに格納されている値より大きいIDのツイートのみシートに反映する、というロジックを設定します。

 2-3. GASを書く!

スプレッドシートからスクリプトエディタを開いて、取得したAPIキーを使いGASを記載します。

var twitter = TwitterWebService.getInstance(
'**********',       // 取得したConsumer Key
'**********'  // 取得したConsumer Secret
);

// 認証を行う(必須)
function authorize() {
 twitter.authorize();
}

// 認証をリセット
function reset() {
 twitter.reset();
}

// 認証後のコールバック(必須)
function authCallback(request) {
 return twitter.authCallback(request);
}

function getMyTweets() {
 var service  = twitter.getService();
 var json = service.fetch("https://api.twitter.com/1.1/search/tweets.json?q=' + ここに検索キーワードを記載 + '&lang=ja&result_type=recent&count=3");
 var array = JSON.parse(json);

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var lastRow = sheet.getLastRow() +1;
 var lastId = sheet.getRange("D2").getValue();

 for(var i = 0; i <= array.length -1; i++) {

   var int = parseInt(i);

   if(i === 0){
     var recId = array[int]["id"];
     sheet.getRange("D2").setValue(recId);
   }

    var id = array[int]["id"];

    if(id > lastId){
      var time = array[int]["created_at"];
      var text = array[int]["text"];

      sheet.getRange(lastRow,1).setValue(time);
      sheet.getRange(lastRow,2).setValue(text);
      sheet.getRange(lastRow,3).setValue(id); 
    }
   lastRow = lastRow + 1;
   }
 }
}

検索キーワードをいくつか並べる際は"%20"(スペースの意)を用います。

例: filmarks%20prime

そして上記のGASを1時間おきに動かすように設定しました。

スクリーンショット 2020-04-07 12.12.34

こちらで完了です!

きっちり反映されています!

スクリーンショット 2020-04-07 19.27.39

 2-4. Slackで定期通知させる

こちらはGASを使わず、Slackの標準機能で設定します。

Slackのリマインド記述形式
/remind [@メンバー/#チャンネル] [何を] [いつ(任意)]

今回は自分自身に、アマプラリストのURLを毎週金曜日20時に送ってもらうように設定しました。

スクリーンショット 2020-04-07 12.38.33

このように記述すると、下記のように設定が完了します!

スクリーンショット 2020-04-07 12.40.08

これで設定完了です!

3. もっと簡単に、ノンコーディングで実装してみる!

では今回も弊社で開発したツールを使って、ノンコーディングでアプリケーションの連携+業務自動化を実現してみます。

◆ 連携したいアプリケーションを選択する

TwitterとGoogleスプレッドシートを選択する

スクリーンショット 2020-04-07 12.56.36

◆ トリガーとアクションの選択を行う

今回はツイートされるたびに該当のツイートを取得するため
・トリガー:新規のツイート
・アクション:ツイートを取得
を選択しました。

スクリーンショット 2020-04-07 13.14.39

◆ 認証後、取得するツイートの条件を選択する

取得するツイートは「アカウント」と「キーワード(ツイートに含まれる語句)」で設定できます。今回は「filmarks prime」を設定しました。

スクリーンショット 2020-04-07 19.38.30

こちらでTwitterの設定は完了です!

◆ スプレッドシートのアクションを設定する

スプレッドシートのアクション設定を行います。今回は「セルに追加する」を設定します。

スクリーンショット 2020-04-07 14.46.40

◆認証後、反映するスプレッドシート・シートの選択を行う

反映したいスプレッドシートを選択します。今回はGASの場合と異なり、id、lastidは不要になります。

スクリーンショット 2020-04-07 16.39.24

上記の赤枠内にデータが格納されていくよう、
・ファイル:アマプラリスト
・シート:シート1(本シートのシート名)
を選択。

◆ 反映するシートの選択まで完了したら行の指定を行う

カラム名が入っている行(1)から、反映を完了する行までを選択します。
今回はざっくり1000行目までを選択しました。

スクリーンショット 2020-04-07 16.33.30

◆ セルを選択をする

ツイートから取得した値をどのセル(カラム)に反映するかを選択します。1つ前の作業で範囲の指定を行ったことで、開始行(1行目)の項目ごとに設定できるようになっています。

スクリーンショット 2020-04-07 16.45.14

この項目に、先ほどのツイートから取得した値をセットしていきます。現在は、アカウント名・投稿日時・本文・お気に入り数・リツイート数の設定が可能です。

スクリーンショット 2020-04-07 16.45.14

・time:投稿時間
・text:本文
各項目に上記の通り設定をすれば完了です!

スクリーンショット 2020-04-07 16.48.20

テストしてみると、こちらもきっちり動いていました!

スクリーンショット 2020-04-07 19.26.43

およそ2分で簡単に設定完了!例えば自社での運用しているSNSアカウントのツイート内容の一覧などを管理したい時にも使えますね!

今回のケース以外にも、
・salesforceとマネーフォワードの連携
・スプレッドシートとクラウドサインの連携
・GmailとGoogle Driveの連携(記事化済み)

などが簡単に実現できます!

「興味がある!」「使ってみたい!」という方、「こんなアプリケーション同士の連携はできないのか?」「こういうアプリケーションを使っているんだけど、どう連携したら業務が楽になるか?」といったご相談がある方、是非下記のページからお問い合わせください!

お問い合わせはこちらから!


この記事が参加している募集

おうち時間を工夫で楽しく

自動化のお困りごとを解決するためのツール進化に活用させていただきます!