初めに
やりたいこと
チーム内の情報共有にRSSリーダーであるinoreaderを使用しているのですが、誰かがせっかく新しく記事を共有してくれてもなかなか他の人気づきづらいという問題を解決するため、今回は、誰かが新しい記事をinoreader内で共有したときにDiscordに通知を自動で送れるようなシステムを導入しました。
最初は、DiscordにあるAPIを使用してうまくできないかと思ったのですが、tokenの取得が何故かうまく行かず(&英語の文献含めネット上に情報があまり落ちてなく)今回はZapierを使って実装をしました。 (APIを使用した方の実装もやってみたい)
Zapierめちゃめちゃ使いやすいです。(これくらいシンプルな連動なら、コード打つ必要は全くないです)
Zapierとは
Zapier(ザピエル)はアメリカが開発したRPAの1つで、様々なサービスやアプリを連携させて動作を自動化させるものです。 AとBというサービスを登録しておき、 Aのサービスがこういう処理をしたとき(Triggerの設定)、Bのサービスをこう動作させる(Actionの設定)という設定を予めZapierの設定しておくことで、色々な作業を自動化することができます。
PRAの中には他にも有名なところで「IFTTT」というものもありますが、Zapierのほうが対応しているサービス数が多く、さらに2つ以上のサービスを連携させることもできることから今回はZapierを使用してました。 (詳しくはこちらの記事がわかりやすかったです)
実装方法
ざっくり言うと、Triggerの設定とActionの設定をするだけです。
Zapierに登録 → 「Make a Zip!」
まずは、Zapierからアカウント登録をしましょう。 そしたら、右上のボタンから「Make a Zip!」を作成します!
Triggerの設定
まずは、Triggerとして設定したいサービス(今回の場合「rssリーダー」→「inoreaderのチームのRSSフィードURL」)を選択し、起動条件などを選択し、実際にその条件のときにZapierがきちんと検知するかテストを行います。 画面の手順通り進めていれば問題ないかと思います。
一方、用意されている選択以上のことをしようとしている場合は、Zapierは使えないということになります。(諦めて自分でプログラムを書きましょう)
Actionの設定
Triggerのテストが終わったら、次に Actionの設定をします。 まず、Action先のサービス(今回の場合はDiscord)を選択し、具体的なチャンネルやBotの名前画像などを設定した後、実際に動くのかテストを行います。
こちらも問題なければ、Zapを「run」にしておけば、5分おきに、Trigger条件が満たされていないか確認し、満たされていればActionが発動されるという動作が自動化されます!
終わりに
めちゃめちゃ便利なので、なにかサービス間同士で連動させたいことがある場合は、今後まずZapierでできないか試みることにします。
一方、用意されている機能はシンプルなものしかなく、少し複雑な動作をさせたいなどという場合はもちろん自分でプログラムを開発する必要があるのでそこら辺は自分でやるしか無いといった次第です。