Blog

ZapierでX投稿するAPIを呼び出して結果をSlackに通知してみた

はじめに

こんにちは。ニフティ株式会社の並木です。
今回は「Zapier」でAPIを呼び出し、実行結果をSlackに通知する方法についてご紹介いたします。

背景

以前「Zapierを使ってRSSフィードの更新をトリガーにしたTwitterへの自動投稿機能を作ってみた」で紹介した方法で、RSSフィードの更新をトリガーにしたX(旧Twitter)への自動投稿機能を作成したのですが、上記記事の「④Twitterに文章を投稿したい」で紹介した機能が2023年9月に使用できなくなってしまいました。(詳細:https://help.zapier.com/hc/en-us/articles/18657531069965
別の方法で自動投稿機能を復活できないかという話になり、前から使用していた「Zapier」を流用しつつ、新たに「Amazon API Gateway」「AWS Lambda」「X API」を使用して、自動投稿を実現することにしました。

構成図は以下の通りです。

構成図の【1】【2】については、「Zapierを使ってRSSフィードの更新をトリガーにしたTwitterへの自動投稿機能を作ってみた」の①~③の処理をそのまま流用します。
【4】の手順は「API GatewayとLambdaでX投稿するAPIを作ってみた」に記載しています。
【5】の手順は「LambdaでX APIを呼び出してみた」に記載しています。
「【3】ZapierからAPI Gatewayを呼び出す」と「【6】SlackにXの投稿結果を通知」が今回の説明範囲になります。

前準備(必要な材料をそろえる)

Zapierを使用するにあたって、必要となるものを準備します。

■ 呼び出すAPIのURLを取得する

API GatewayとLambdaでX投稿するAPIを作ってみた」で作成したAPIのURLを取得します。
URLの取得方法は公式ドキュメントの「API の呼び出し URL の取得」に記載があります。
画像の赤枠部分をコピーすればOKです。

■ 呼び出すAPIのAPIキーを取得する

API GatewayとLambdaでX投稿するAPIを作ってみた」で作成したAPIのAPIキーを取得します。
API Gatewayのコントロールパネルの左メニューの「APIキー」から確認できます。

「Zapier」から「Amazon API Gateway」を呼び出す

前準備で取得したURLとAPIキーを使って、ZapierからAPIを呼び出します。

■ App&Event
Appは「Webhooks by Zapier」、Eventは「POST」を選択します。

■ Action
URLには、前準備で取得したAPIのURLを入力します。
API GatewayとLambdaでX投稿するAPIを作ってみた」の中で、JSON形式で「hoge」というリクエストパラメータをAPIで受け取れるようにしました。
なので、Payload Typeは「JSON」を選択します。
Dataには「hoge」というキー名と、Xにポストする文章を設定します。

認証周りですが、Basic Authは今回使わないため空欄でOKです。
今回はAPIキーによる認証を行うため、Headersに「x-api-key」というキー名と、前準備で取得したAPIキーを設定します。

これでZapierからXに投稿できるようになりました!

SlackにXの投稿結果を通知する

API GatewayとLambdaでX投稿するAPIを作ってみた」で作成したAPIから、以下の通りJSON形式で値が返却されます。

上記の中から"result": "Xの投稿結果"を取り出してSlackに投稿し、Xの投稿の成功/失敗を通知できるようにします。

■ App&Event、
Appは「Webhooks by Zapier」、Eventは「POST」を選択します。

■ Account
自分のSlackアカウントを選択します。

■ Action
Channelに通知したいチャンネル名を選択します。
MessageTextに通知したい内容を入力します。ここに"result": "Xの投稿結果"を埋め込みます。

これでSlackにXの投稿結果が通知されるようになりました!

おわりに

Zapierを使ってRSSフィードの更新をトリガーにしたTwitterへの自動投稿機能を作ってみた」で紹介した方法が、2023年9月に使用できなくなり焦りましたが、無事に自動投稿機能を復活させることができ一安心しました。
APIを自作することで、以前は無かった「Xの投稿結果を通知する」という機能を付けることができたので、結果的に良かったのではないかと思います。

参考記事

ニフティでは、
さまざまなプロダクトへ挑戦する
エンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトより
お気軽にご連絡ください!

ニフティに興味をお持ちの方は
キャリア登録をぜひお願いいたします!

connpassでニフティグループに
参加いただくと
イベントの
お知らせが届きます!