Power Automate / Azure Logic AppsからIFTTTを実行する方法

こんにちわ、[のりじ](https://twitter.com/nori790822)です。

Twitterの仕様変更の影響でMicrosoftが2023年4月25日以降、連携を終了しました。  
というわけで、Power AutomateやAzure Logic Appsを利用してTwitterに自動投稿を行っている場合はエラーになってワークフローが止まります。  
もうノーコードでTwitterへの自動投稿Bot作るのは難しいかな？と思ったんですが、友人の[Hiro](https://twitter.com/mofumofu_dance) さんに ~~「IFTTTの自動投稿は動いてる」と教えてくださったので~~ ヒントを貰ってPower Automate / Azure Logic AppsTwitterコネクタをIFTTTのTwitterアクションで置き換えてみた、な備忘録です。 

 :::note warn
IFTTTのTwitter連携について
2023年5月23日以降Freeでは利用できなくなりました。Proに変更する必要があるので注意してください。
:::

# 1. ワークフローの準備

今回はTwitterコネクタのみをIFTTTと置き換える方法です。
全体のワークフローの作成は以下の記事を参考に。

- [Excelシートで指定した時刻／内容で自動ツイートさせてみよう](https://ascii.jp/elem/000/004/092/4092852/)

記事はAzure Logic Appsを使う前提で書いていますが、もちろんPower Automateでも同じワークフローが作成できます。  
ただPower Automateを利用する場合、HTTPコネクタはプレミアコネクタとなるので注意してください。

# 2. IFTTTの準備

![20230503_00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/d2ae31d1-a5f6-37e3-5d32-27652a55f1f5.jpeg)

今回はIFTTTのWebhookレシピを利用してPower Automate / Azure Logic Appsとつなぎます。  
IFTTT側は、WebhookとTwitterのみ利用する形。

## 2-1. トリガーの作成

![20230503_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/5c84025f-075b-5256-dea3-9b0bc473f929.jpeg)

Webhookをトリガーにします。  
[IFTTT](https://ifttt.com/) にアクセスして、ログインし検索窓に「Webhook」と入力。
Webhooksを選んだあと「Create」をクリック。

![20230503_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/1abed114-5fa4-2170-9664-0baa626798ab.jpeg)

「If This」をクリックし、検索窓にWebhookと入力。

![20230503_03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/74e0970d-ac5a-1634-f2ad-27d727631502.jpeg)

トリガーの種類が2つ表示されるので「Receive a web request」を選択。  
私はここで「JSON」を選んだのに気づかず地味にハマりました・・・

![20230503_04.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/3ca61d62-c684-0998-85b2-ba7f0f9e3f78.jpeg)

「Event Name」にわかりやすい名前を入力してトリガーを作成します。

## 2-2. アクションの作成

![20230503_05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/83c928e5-c31d-e1cf-1cfb-a918f36ea601.jpeg)

「Then That」をクリックして検索窓に「Twitter」と入力。  

![20230503_06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/9f17be62-2d39-ffef-f4b2-3c1048b907f5.jpeg)

「Post a tweet」をクリック。

![20230503_07.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/ce78890e-ab8d-2643-acfa-249fd2dc735a.jpeg)

Tewwt text の部分にデフォルトで表示されている「The event named "{{EventName}}" occurred on the Maker service」は利用しないので全文削除。  
「Add ingredient」をクリックするとメニューが表示されるので「Value1」を選択します。

## 2-3. Webhookの設定確認

上記のレシピが完成したら、上部タブの「Explore」をクリックし検索窓に「Webhook」と入力。右上に「Setting」ボタンがあるのでクリックします。

![20230503_08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/92cf601c-4414-c8b1-2207-b001abe5d8a7.jpeg)

「Webhooks Setting」ページが開くので、URLで表示されているページにアクセスします。

![20230503_09.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/18fce070-22d8-36e8-8682-4808593a3c4e.jpeg)

「Your key is」が表示されたページになります。今回はこのページ内の「To trigger an Event with 3 JSON values」の内容を利用します。

# 3. Power Automate / Azure Logic Appsの修正

![20230503_010.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/49114d43-b56c-ffcb-c2d1-5a33e7d2b4ad.jpeg)

既に作成済みのワークフローの最後に設定したTwitterコネクタを削除しHTTPコネクタに変更します。

![20230503_011.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/0c638865-b610-d9ea-2688-0caf3660db83.jpeg)

HTTPコネクタに以下の内容を入力。

1. 方法：「POST」を選択
2. URI：https://maker.ifttt.com/trigger/{設定したwebhookトリガーのEvent Name}/with/key/{表示されているWebhooks SettingのYour Key}　を入力
3. ヘッダー：「Content-Type」と「application/json」を入力
4. 本文：以下の内容をコピペ

```
{
  "value1": @{first(body('アレイのフィルター処理'))?['ツイート内容']}
}
```

以上が設定できたら「保存」します。

# 4. 実行結果

![20230503_012.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/7fa2996b-ac73-84ac-0e8f-31d11da04afe.jpeg)

実行成功すると、出力に状態コード200と表示されます。が、本文にはTweet内容が表示されません。（Congratulations!～のみの表示）

![20230503_013.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103396/fbbc8bdf-b621-1f3f-1bef-624cc1ed0ee5.jpeg)

IFTTTの上部タブ「My Applets」をクリックすると作成したレシピが表示されるのでクリック。「Check the log of your Applet runs」で詳しいログが確認できます。

# 5. 最後に

IFTTTのTwitterアクションに置き換える方法ですが、いつ提供が終了するのかわからないので、本記事内容のご利用は自己責任で！  
IFTTTのWebhook関連の情報はわかりにくいなと感じたので、利用時は気をつけてください。