データサイエンス&サイバーセキュリティ備忘録

Python, Data Science, Kaggle, Cyber Security, CTF, などなど

Twitterでいいねしたtweetを自動でSlackに投げてみた

はじめに

今までSurface Pro 3のメモリ4GBで頑張っていたのですが、流石に限界を感じたので2ヶ月ほど前にMacBook Proを購入しました笑

ちなみに、メモリは16GBにしたのでSurfaceの4倍です。

ただ、macOSの仕様やキーボードに慣れていなかったり、Surfaceタブレットにもなって便利ということで、Surfaceをメインに使っています。

Surfaceは、アメリカで苦楽を共にしたから愛着があるというのもある笑)

MacBookはどういうときに使っているのかというと、Kaggle用にデータ分析したりモデルを構築するなど、データサイエンス用のパソコンと化しています。

といっても、多少はSurfaceでもJupyterなどを使用していていますが...

SurfaceMacBookのどちらを使うにしても、データ分析やモデル構築のtipsは自分でググる or Twitterで情報収集して取り入れています。

Twitterでの情報収集を簡単に紹介すると、良さそうと思った情報にいいねして時間のある時にまとめて見る、という方法です。

Twitterを見るデバイススマホなのですが、実際にコードを書いたりするのはパソコンなので、いいねを見返すときはパソコンから閲覧しています。

しかし、Twitterのいいねのリスト内は検索ができなかったり、ひたすらスクロールしないと過去のものを見ることができないので、Surfaceで見つけたいいねをMacBookでも見つけるということが非常にめんどくさいです。

そこで、Twitterでいいねしたtweetを簡単にどちらのパソコンでも見れるようにしたいと思うようになり、何かいい方法がないか探していました。

前置きが少々長くなりましたが、いい方法を見つけた&実装したので紹介します。

方法

SurfaceMacBookの両方で使っているアプリケーションの1つにSlackがあるので、TwitterでいいねしたtweetをSlackに送るという方法を採用しました。

もともと、Surfaceで見つけた有益な情報をSlackを通してMacBookに送るという方法をとっていたので、いいねしたtweetもSlackにまとめるのはちょうど良さそうだと思い、早速実装しました。

使用したアプリケーション

今回使ったアプリケーションは、以下の3つです。

TwitterとSlackはもともと持っているアカウントを使用しているだけで、両アプリケーションではアカウント連携で使用しただけです。

IFTTTは馴染みがない方もいるかと思うので、簡単に説明します。

IFTTTとは?

IFTTT(If This Then That)は、2つのWebサービス・プラットフォームを連携させることができる、無料のプラットフォームです。

IFTTTで連携させることによって、あるプラットフォームで特定の操作をしたとき、あらかじめ設定しておいた操作を自動的に別のプラットフォームでも実行するということが可能です。

ifttt.com

上記の公式サイトでもあるように、TwitterFacebookなどのSNSだけでなく、iRobotのルンバやAmazonのAlexaといったスマート家電とも連携できるみたいです。

ここでのIFTTTの説明はこのくらいにして、どのように連携させたのかを紹介します。

実装

実装といっても、コーディングをする必要がないので非常に簡単です。

IFTTTのGUI上でポチポチとクリックしてオプションを選択するだけなので、誰でも簡単に好きなプラットフォームを連携させることができます。

では、具体的な方法を説明します。

事前準備

事前準備として、Slack上でどのチャンネルでいいねしたtweetを受け取るかを決めます。

ちなみに、指定のチャンネルではなく自分のDMで受け取ることも可能です。

私の場合、自分のDMではメモ代わりに使うことがあるので、いいねしたtweetを受け取る専用のチャンネルを作成しました。

STEP 1

いいねを受け取るSlackのワークスペースを開き、AppからTwitterとIFTTTを追加します。

Appは、左上にあるワークスペース名の下にあります。

Appをクリックし、TwitterまたはIFTTTと検索して追加をクリックすると、一度ブラウザが開きます。

ブラウザ上でSlackに追加を選択すると、追加完了です。

STEP 2

以下のサイトから、IFTTTのアカウントを作成します。

ifttt.com

リンク先の右上の、Sign upから作成できます。

STEP 3

サイトの右上の、Createからapplet*1を作成します。

Createを選択した後、以下の画面の赤枠内をクリックします。

f:id:a7xche:20200819104306p:plain

ここでは、最終的に実行したい操作を行うためのトリガーとなる動作を選びます。

今回の場合、トリガーとなるアクションはTwittertweetにいいねをするとなります。

なので、まずはChoose a serviceでTwitterを選択します。

次に以下の画面が現れるので、トリガーとなる動作(赤枠内と同じもの)をクリックします。

f:id:a7xche:20200819105653p:plain

※ ここまでの動作で、たしかTwitterのアカウントの連携がどこかのタイミングであった気がするので、トリガーとして使用するアカウントを連携します。

トリガーの設定が完了したら、次はトリガーによって起こすアクションの設定です。

今回の場合のアクションは、メッセージ(いいねしたtweet)を投稿するです。

まずは、以下の赤枠内をクリックして、Choose action serviceでSlackを選択します。

f:id:a7xche:20200819111701p:plain

次は、どのようなアクションをするかを設定するために、以下の赤枠内をクリックします。

f:id:a7xche:20200819112043p:plain

アクションを決めたら、どのチャンネル(または自分のDM)でどのようなメッセージを送るか決めます。

と、その前にここのタイミングでSlackと連携する操作が入ります。

ここで、いいねを投稿したいSlackのワークスペースを選択する必要があります。

連携後、以下の画面に遷移したらフィールドに設定を記載しますが、とりあえずいいねしたツイートがSlackに投稿されればいいという方は、どのチャンネル(または自分のDM)に投稿するかを決めるだけでOKです。

※ 青い太線は、自分のチャンネル名を隠しているだけです

f:id:a7xche:20200819114045p:plain

設定完了したら、フォームの一番下にあるCreate actionをクリックします。

以下の画面になり、appletが実行されたら通知を受け取るかの選択をし、Finishをクリックしたら完了です。

f:id:a7xche:20200819115002p:plain

実際に動かしてみた

早速、試しにフォロワーさんのtweetをいいねしました。

すると、いいねした数秒後に指定したSlackのチャンネルにtweetが投稿されました。

というわけで、無事に実装は完了です!

投稿されたSlackのチャンネル内では、tweetを探すための検索ができるので、実現させたかったことができて満足です。

めでたしめでたし。

*1:あるアプリケーションの中にある、小さなプログラムのこと。今回の場合、IFTTTというアプリケーションの中にある、連携させるためのプログラムのことを指す。