公式Twitterアカウントから必要な情報だけSlackに流す方法

## はじめに

この記事は株式会社エイプリルナイツ AdventCalendar 2日目の記事です。

https://adventar.org/calendars/8003

最初に好きなクリスマスソングを記載するルールなので記事内容と関係ないですが載せておきます。
もとはユニクロのCMソングらしいですね。聞きながら読んでください！
<iframe width="560" height="315" src="https://www.youtube.com/embed/pvqvBAA-0AE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

### 本題に入る前に

この記事を書こうと思った理由について書かせてください。
弊社で社会人ゲーマー向けのゲームマッチング（募集）アプリ「[cogme](https://cogme.jp/app)」を今月リリース予定です！
主要なゲームタイトルについては、募集条件にゲームモードやランクを指定したり、ユーザープロフィールに好きな武器を設定できるのですが、ゲームのアップデートがあると内容を更新する必要があります。

![Group 13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/f863eced-9c65-9857-bcc9-0a1e2ec537d1.png)

つい先日モンハンサンブレイクの大型アップデートがありモンスターが追加されましたね。
昨日はスプラトゥーン3に新ブキや新ステージが追加されたりと、リリース直前になってアップデートが多く追いかけるのも一苦労です。
週に一度まとめて確認する時間を取って更新作業をしているのですが、効率的に情報を取得するためになんとかしたいというのがきっかけです。

アプリの特性上ゲームのアップデート情報の話ですが、各種ライブラリを使用しているエンジニアの皆さんにも公式情報を吸い上げたいニーズはあると思います。

## 実現したいこと

- 最速かつ信頼できる情報元として公式Twitterアカウントのツイートを取得してSlackに投稿
- アップデート情報だけを追いかけたいので、タイトルごとに決まったフレーズで取得するツイートにフィルターをかけたい
- リツイートやリプライなども取り除きたい
- 手軽に取得するアカウントの追加や、取得条件の修正をしたい

## 使用ツール

2つだけです！

- [Nitter](https://nitter.net/)
  - Twitterをログインしなくても見れるサイトです。
- SlackのRSSアプリ
  - 公式に丁寧な説明があるのでこちらを参照してください。

https://slack.com/intl/ja-jp/help/articles/218688467-Slack-%E3%81%AB-RSS-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B

### 注意事項

- nitterで検索すると似たようなサイトが出てきますが `nitter.net`が正しいです。

## 設定方法

### 1.NitterでSlackに流したいアカウントをユーザー名で検索をする

![nitter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/e95a9755-3833-aabc-d0f5-8835a27770cb.png)

### 2.Tweets検索に切り替えて、詳細条件を設定する

![Search___Qiita____nitter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/b9dc6887-5aa4-bd03-9ad6-9c5d9f52d329.png)
![Search___Qiita____nitter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/3bd1034e-e3f7-2c39-f4d2-3ea9a0ad5ffd.png)

- ユーザー名の前に `from:`をつけることでユーザー自身が投稿したツイートのみになります
- Excludeの欄にチェックをつけることでこれらが含まれるツイートを除外できます。この例ではRTとリプライを除外しています。

![Search__from__Qiita_Advent____nitter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/ee6f5ee5-53c6-71e2-6c82-4545532e5d5c.png)

#### 上記の例ではQiita公式Twitterが「AdventCalendar」についてツイートした投稿のみが検索結果に表示されます

### 3.SlackのRSSアプリに追加するためのURLを取得

右上のFeedマークをクリックするだけです
![Search__from__Qiita_Advent____nitter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/cde73a16-32dd-0a2e-6b11-7dbbc3f0e377.png)
![https___nitter_net_search_rss_f_tweets_q_from_3A_40Qiita_Advent_e-replies_on_e-nativeretweets_on.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/32c8dc3d-0125-7c22-6b6d-a649013fb9ed.png)

### 4.SlackのRSS登録ページに3.のURLを追加し、投稿するチャンネルを指定する

このページへのたどり着き方はこちらから

https://slack.com/intl/ja-jp/help/articles/218688467-Slack-%E3%81%AB-RSS-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B

![RSS___Slack_App_ディレクトリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/73382d3a-e18a-a059-6359-468c44316dd3.png)

## 使い方

あとは待つだけです！

## 実際の様子

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/7c5f00a5-f430-3965-1442-301545e4771a.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/082a4fee-5739-f7b4-1737-e5da48942e19.png)

## 終わりに

### 感想

TwitterをSlackに流す方法は他にもあるのですが、必要な条件を満たしてくれるのはNitterでした。
ゲームのアップデートについてツイートするときに`パッチ`、`パッチノート`といったり、`アップデート`と表現したりとタイトルごとに癖があるので絞り込むキーワードは少しコツがいります。

スプラトゥーン3を例にすると、`更新データ`だけでは予告や不具合報告のツイートも引っかかってしまうので、更新内容のURLがついたツイートだけを確実に拾うためのキーワードを以下のように設定しています。
`from:@SplatoonJP 詳しい更新内容は`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262707/5f7b849b-48ad-96fc-4b1a-c953d39b65ef.png)

### 懸念点

一度登録したRSSのURLは修正することができず、この記事に書いた手順を最初から実施してキーワードだけ変更する必要があるので、頻繁に条件を変更したいときには向かないかもしれません。

### iftttは？

iftttでもTwitterの検索結果をSlackに流すことはできますが、以下の理由によりやめました

- iftttアカウント、Twitterアカウントが必要なのでアカウント管理の手間が発生してしまう
- Slackに流せるようになるまでの手順が多く、ある程度ITリテラシーのある社員でないとメンテできない

## 参考

<https://316-jp.com/twitter-rss>