ノンプログラミングではじめる「スクレイピングしたニュース記事をSlackに通知」

こんにちは、通りすがりの新米エンジニアTerryyです。
チャットボットという、自動でふんふん会話するサービスの開発をしています。

晴れてエンジニアになって初の投稿が「ノンプログラミング」ですよ。
どうですかこれ、という感じですが、せっかくなので頑張ってテンション上げていきたいと思います。

今回は「特定の話題についてのニュース記事をスクレイピングして、Slackチャンネルに通知する」ということを、**ノンプログラミング**でやってみます。
具体的に言うと「IFTTT（イフト）」というサービスを用いて実現します。

# なぜやるのか
貴重な時間を割いてニュース記事をSlackに通知する目的ですが、↓こんな感じです。

 - 情報収集をラクにする
 - 重要な情報を見逃さない
 - 社員の情報収集の水準を一定以上に保つ
 
そもそも前提として、同じ会社内でも人によって情報収集のやり方は千差万別なわけです。
毎日決まった時間にちゃんとニュースをチェックする人もいれば、今週は忙しくてキツい、みたいな人もいます。

情報収集がラクになればみんなハッピーですし、「えっ、お前◯◯知らねーの？（ドン引き）」みたいなことは、できれば無くしたいですよね。
例えば、僕が開発に関わっているチャットボットは、基盤となるFacebookMessengerとかLINEのAPI変更やバージョンアップの情報を見逃すと、ある日突然サービスがお亡くなり（ち〜ん）に、なんてこともありえます。

そうならないためにも、**大事なニュースがSlackに通知されて、社員みんながそれを知ることができる体制づくり**はとても大事なのです。

# IFTTTについて
![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/b48d3d77-1967-17d3-e3d6-e8e9235c88d8.png)

- https://ifttt.com

IFTTTは有名なサービス連携サービス（は？）ですが、なぜこれを使うのかいうと、理由はいくつかあります。

 - いちいちプログラムやシステムを組む必要がない
 - 設定や利用が簡単でラクなので、誰でも活用できる
 - お金がかからない（大事）

ニュース共有の重要性は先に述べた通りですが、そのために[Scrapy](https://scrapy.org/)とか使って、システム組んで、サーバたてて、、、となると、時間とかお金とかお金とか諸々つらい（ツラい）。
特にベンチャー企業は、主業務そっちのけでこの手の作業に投資するお金もヒマも無いですよね？

エンジニアの仕事は多岐にわたりますが、技術を扱う者が目指すべきは、「**いかに技術を使わないか**」ということです。技術はあくまでもツールであり、目的であってはなりません。スクレイピングとか楽しいのは分かるけどね。

なので、片手間でサクッと設定できるIFTTTは、まさに最適なツールです。

しかし、ページを開くと英語だらけだし、何をどうすれば良いのかよく分からん、つらい。調べるのも面倒くさい。な人~~自分です~~も居ると思うので、簡単なやり方をご説明します。

# レシピを作る流れ
IFTTTの主な設定は「**トリガー設定**」「**アクション設定**」の２つです。

トリガーは「何が起きたら動作するか」、アクションは「どんな動作をするか」という設定のことで、これら２つの設定をまとめたものを**レシピ（Applet）**といいます。
つまり、**IFTTTとは、レシピを作るためのサービス**なんですね。

### 1.新規レシピの作成
（登録完了ぐらいはできると信じて）
①まずは、「NewApplet」から新規レシピを作成します。
この画面は上部の「My Applets」から入れますが、右上のアイコンから「New Applet」を押せばここをすっ飛ばして②の画面に移動できます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/5e4f431b-69a9-adb1-fae9-0b890eef0976.png)

②「＋this」をクリックして、「トリガーの設定」に入ります。（ここ分かりにくいよなぁ...）

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/c331fd97-5423-d8d8-0b7d-c018adb7a6bb.png)

### 2.トリガーの設定
③トリガーを設定するサービスを選択します。色々サービスがあってワクワクしますが、今回はニュースのスクレイピングなので、オレンジ色の「RSS Feed」をクリック。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/6108213b-e6eb-7f6e-0abf-d5acda17b32b.png)

④「トリガーの種類」を選びましょう。今回は「特定の単語を含む記事の投稿」なので、「New feed item matches」をクリック。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/cbb37cf0-0660-f94d-d3c4-a50e4ead3e3f.png)

⑤トリガーの詳細設定をします。「Keyword or simple phrase」にトリガーする単語をクォートで囲って指定します。複数の単語をANDで指定することも可能です。今回は「facebook」と「messenger」の両方が入った記事をトリガーに設定しています。
下の「Feed URL」には、ニュースサイトが提供するRSSのURLを入力します。今回は[Techcrunch](https://jp.techcrunch.com/)さんのURLを入力しました。
丁寧なサイトなら「RSS」ボタンやページの案内がありますが、そうでない場合は「ページのソースを表示」から「RSS」を検索して探しましょう。
参考：[RSSフィードのURL取得方法は？](https://www.benchmarkemail.com/jp/help-FAQ/answer/how-do-i-get-the-url-for-an-rss-feed)

設定が全部終わったら「Create trigger」をクリック。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/d03bbbd9-01d6-df9b-9874-23146db34deb.png)

### 3.アクションの設定
⑥「＋that」をクリックして、「アクションの設定」に入ります。（もう慣れてきた）

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/21967d15-581b-b8c1-d177-41c1b4a11e16.png)

⑦アクションを設定するサービスを選択します。今回は「Slack」を選ぶ。Slackは上の方にないので、検索するのがオススメ。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/8f8c32f7-a56b-10b7-1238-3e283ac659f6.png)


※SlackとIFTTTを接続設定していない方は、ここで設定しておくことをオススメします。以下のリンクから設定できます。
[Do more with Slack - IFTTT](https://ifttt.com/slack)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/58918ef3-a5da-947e-1ef2-8e17f1f254f6.png)


⑧「アクションの種類」を選ぶ。Slackは「Post to channel」しかないので、それをクリック。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/78d92f12-3393-15f5-379c-5ac5b0c35e81.png)

⑨アクションの詳細設定をします。今回はチャンネルに通知するのでプルダウンから「Channels」を選び、その後、下のプルダウンから通知したいチャンネルを選びます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/e6df71b5-b908-5cd9-e332-1c286a957925.png)

⑩Slackに投稿する内容を設定します。URLとかタイトルとかめぼしいものはデフォルトで設定されているので、基本的にはいじらなくて問題ないです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/d2599801-ea40-0411-c5dc-b20f5f8a25c1.png)

⑪設定を完了します。今までの設定のサマリが表示されるので、内容を確認して下さい。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/79f3c02a-627f-29be-2165-5351ff2e5ec2.png)

最後に注意なんですが、**「Finish」ボタンを絶対にクリックしてください。**「終わった〜！」と思ってページから離れると、せっかくの設定が水の泡です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/a1d62986-2c88-a554-467d-83aa2bf22905.png)

### 4.Slackに通知が来る
ここまでの設定に問題がなければ、ニュースが流れた時に、こんな感じで通知が来ます。Slack側の設定でIFTTTが使えるようすることを忘れないように。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/110571/fec34e12-6744-b3dc-8c16-fdb2d5a703c7.png)

# 設定完了！
以上が、一連の設定の流れです！お疲れ様でした！

あとは、気になるニュースが勝手にSlack通知に飛んで来るので、みんなでニヤニヤしながら投稿を見るだけです。これが全部タダですから、良い時代です。

一旦走り出した後は、「どんなニュースを通知したいか」とか「どう単語を設定すればうまく記事を拾えるか」という所をチームで議論して、設定を強化していきましょう！May the news be with you!!