Azure Logic Appsで推しの配信通知を受け取る

こんにちは。

仕事の合間にVTuberの配信通知を見逃すのでbotに拾わせてSlackに投げて貰えばいいじゃんと思い作ってみたものの紹介です。

# もくじ
- 使うもの
- かかる費用
- 作り方


## 使うもの

Logic Appsを使うのでノンコーディングでいけます。

- Azure Logic Apps
- Twitter
- Slack
- ちょっとの日本円

## かかる費用

上でちょっとの日本円と書きましたが **月1〜10円/推し** 程度です。たぶん。

![スクリーンショット 2020-06-29 13.33.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/4145f116-7a03-0515-bb9a-ef3d6b5522dd.png)

公式の価格説明ですが少々わかりづらいです。

- アクション
  - 1回の実行に対してかかる金額
- (Standard | Enterprise)コネクタ
  - コネクタを1回呼び出すごとに課される金額

なので1回の実行で3つのStandardコネクタを使う場合1実行で

```
0.014560 * 3 + 0.003136 = 0.046816円
```

かかる計算です。この場合100回動かして4円とかですね。 **実質タダ**。

## 作り方

### 1. 推しを決める

今回は [バーチャル狐の白上フブキ](https://twitter.com/shirakamifubuki) さんを推します。こんこんきーつね。

### 2. 配信告知のツイートをいい感じに検索できるクエリを書く

推してたら配信告知ツイートの特徴がわかるはずなのでそれっぽいツイート検索のクエリを書きます。

```
(youtu.be AND 放送のお知らせ) (from:shirakamifubuki) (exclude:retweets)
```

こんな感じ。取れるか心配なのであればTwitterの検索窓に入れて検索してみましょう。

![スクリーンショット 2020-06-29 13.44.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/7c12d881-9262-639d-3c51-81a8aa10111d.png)

:ok: 

### 3. Logic Appsをつくる

まずリソースを作成し、デザイナーに移動します。

![スクリーンショット 2020-06-29 13.48.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/bd57e05b-50bf-a917-7189-094829dc22b4.png)

こんな画面。

Logic Appsでは **何を契機に動き出すか(トリガー)** と **何をするか(アクション)** を組み合わせて処理を作ります。

なのでまずトリガーを設定します。今回はツイートを契機とするのでTwitterのコネクタを探します。

![スクリーンショット 2020-06-29 13.53.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/0a95ed9f-d20e-1838-9396-6c8f63b5d7b9.png)

必要に応じて、アカウントとの接続を要求されるのでいつも使っているアカウントでログインしましょう。

**新しいツイートが投稿されたら** を選択すると以下のように表示されるので必要項目を入れていきます。

![スクリーンショット 2020-06-29 13.54.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/ce56b935-3297-e605-7c2b-2b902ce0cd85.png)

検索テキストにさっき書いたクエリを入れて確認する頻度を適度な具合に設定します。

![スクリーンショット 2020-06-29 13.56.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/642bf95c-229a-10f3-8750-4bf9611cbc1f.png)

こんな感じ。

次にメッセージをSlackに投げるアクションを設定します。

**+新しいステップ**をクリックしSlackを検索。

![スクリーンショット 2020-06-29 13.57.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/6e5620d7-46db-673c-17e4-bf067ab4596d.png)

**投稿メッセージ**を選択します。 (これ `Post Message` をそのまま翻訳かけたんですかね…)

![スクリーンショット 2020-06-29 13.59.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/5ccc5ee1-9a29-2275-bf4f-69d84c6125cb.png)

こんな感じの設定画面が出てくるので値を埋めていきます。
こちらも初回はログインを要求されるのでいつも使っているアカウントでログインしましょう。

んで値を埋めたものがこちら

![スクリーンショット 2020-06-29 14.10.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/0f8a0bda-a956-9ed2-944f-ddb4775a20d9.png)

今回は自分のDMに送りたいので**チャネル名でカスタム値**として自分のIDを指定しています。

**@@としているのは@単体ではパラメータと認識されるためです(いわゆるエスケープ)**

設定できたら保存して推しのツイートを待つだけです。


実行された結果がこちら
![スクリーンショット 2020-06-29 14.20.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172491/58711a53-2b6d-0833-8905-689c4f581f89.png)

メッセージテキストを弄ってる途中のスクショなのでツイートへのリンクだけが拾えてますが一応通知されました。
自分宛のDMをLogic Appsのbotから送るとSlackbotのチャンネルに飛んでくるみたいですね。

といった感じでコード書かずしてbotができました。
ラクチン。

あとLogic Appsだとbotのユーザー名とアイコンをオーバーライドを簡単にできちゃうのがいいですね。今はちょっとコード書かないとできなくなってますし。

それでは。

参考

- [タスクを自動化してエンタープライズ統合を実現する - Azure Logic Apps | Microsoft Docs](https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-overview)
- [価格 - Logic Apps | Microsoft Docs](https://azure.microsoft.com/ja-jp/services/logic-apps/)
- [フブキch。白上フブキ - YouTube](https://www.youtube.com/channel/UCdn5BQ06XqgXoAxIhbqw5Rg/featured)
- [白上フブキ / Twitter](https://twitter.com/shirakamifubuki)