アートボード_1

[WordPress] レビュー待ちの記事が投稿された時にTeams(Office365)に通知を送る

複数人で運営しているブログサイトなどで、投稿者が書いた記事を承認権限を持った人に「公開していいか?」のお伺いを立てて、内容を確認してもらってから公開するというフローを取っているケースはよくあると思います。

この記事では投稿者が「レビュー待ちとして保存」という行動を取った時に自動的にチャットツールのTeamsに通知を送る方法を書きます。

Webhookについて

この仕組みを作るためにはWebhookというものを使います。

Webhookとはサービス上で行われた操作を、別のサービスに通知するための仕組みで、WordPress以外にも様々なサービスで使用されています。

WordPressで使用する場合は、以下のプラグインで簡単に設定することが出来ます。

Power AutomateでWordPressからの通知を受信してTeamsにメッセージを送信する

Power Automate(旧Microsft Flow)はOffice365に同梱されている、ワークフローを自動化するためのアプリです。

今回はWordPress側の通知を受信して、Teamsに投稿するまでの処理を自動化するために使用します。

※ Microsft Office365のアプリは頻繁にアップデートが行われるため、画面や操作方法が微妙に違うということがあります。以下は2019年11月29日現在での画面構成になります。

スクリーンショット 2019-11-29 14.27.23

左側のメニューから[+ 作成]を選択して、次に画面上部の[自動化されたフロー]を選択してください。

スクリーンショット 2019-11-29 17.48.15

初期設定をするためのメニューが表示されるので、[フロー名]に適当な名前を入力して、ここでは[スキップ]を押します。

次に、最初のトリガー(引き金)となる動作を設定する画面が出ます。

スクリーンショット 2019-11-29 17.01.58

[コネクタとトリガーを検索する][要求]と入力して[HTTP 要求の受信時]を選択します。

HTTP要求の受信時のコンポーネントを設定します。

スクリーンショット 2019-11-29 17.50.15

[要求本文の JSON スキーマ]という欄に以下の文字列を入力。

{
   "type": "object",
   "properties": {
       "post_id": "number",
       "post": {
           "type": "object",
           "properties": {
               "post_title": "string",
               "guid": "string"
           }
       }
   }
}

次に、下の[+ 新しいステップ]をクリックします。

スクリーンショット 2019-11-29 17.11.05

[コネクタとアクションを検索する]から「teams」を検索して、アクションの[メッセージをフローボットとしてチャンネルに投稿する(プレビュー]を選択します。

スクリーンショット 2019-11-29 18.00.45

Teamsでの投稿先になる[チーム][Channel]をドロップダウン選び、[Message]に投稿する内容を入力します。

以下の文字列を貼り付けると上の図のような形になります。

「@{triggerBody()?['post']?['post_title']}」がレビュー待ちに登録されました。

<a href="@{triggerBody()?['post']?['guid']}">内容を見る</a>

ここまで入力できたら下の[保存]を押します。

すると下の図のように[HTTP POSTのURL] にWebhookの送信先となるURLが生成されます。コピーして保管しておいてください。

スクリーンショット 2019-11-29 19.51.48

注意:
[HTTP POSTのURL]からコピーしたURLは、「 / (スラッシュ) 」であるべき箇所が「%2F」になっているので、使用する際はテキストエディターなどで[%2F]を[ / (スラッシュ)]に置換してください。

※ この記事ではWordPressから送信されるguidというパラメーターをリンク先として設定していますが、厳密にいうとguidはURLのように見える一意識別子として使用されるパラメーターです。他にパーマリンク を取得する方法が見当たらなかったことと、機能的に問題がなかったのでこのようにしています。

WordPressからPower Automateに通知を送信する

前途したように「WP Webhooks」というプラグインを使用します。

ダッシュボードより[プラグイン][新規追加]と移動して[プラグインの検索...]から「WP Webhooks」を検索して、[今すぐインストール][有効化]まで進めてください。

スクリーンショット 2019-11-29 19.57.48

次の左側のメニューから[設定][WP Webhooks]に移動します。

WP Webhooksの設定画面が表示されるので、タブメニューから[Settings]を選択します。

スクリーンショット 2019-11-29 20.17.40

Activate "Send Data" Triggersの中から[Send Data On New Post]のチェックボックスをアクティブにして[Save All]をクリックします。

次にタブメニューから[Send Data]に移動して[Send Data On New Post]の見出しをクリックして入力フォームを展開します。

スクリーンショット 2019-11-29 20.24.58

[Include your webhook url here]に先ほどPower Automateで生成したURLを入力して[ADD]をクリックします。

次に右側にある[Action]列の[Settings]をクリックします。

スクリーンショット 2019-11-29 20.48.08

下の方までスクロールして[Trigger on initial post status change]の項目から[レビュー待ち]のみを選択して[Save Settigs]をクリックして右上の[×]でモーダルウィンドウを閉じて設定は終了です。

実際に試してみる

「寄稿者」権限で記事を作成する。または「投稿者以上」の権限でレビュー待ちとして投稿します。

[公開する][公開するレビュー待ちとして送信]と進む

スクリーンショット 2019-11-29 21.37.33

するとTeamsのチャンネルにFlowボットからの通知が届きます。

画像13

[内容を見る]をクリックすると当該の投稿をレビューすることができます。

レビュー待ちの投稿は、著者と編集者権限以上の人以外にはアクセス出来ないので、編集者権限以上の人がレビュー→「公開する」までの作業を行ってください。

次にどうするか?

とりあえず、寄稿者がレビュー投稿を作成時にTeamsに投稿するまでの流れを書きました。

そのうち「レビューが承認されて記事が公開された時に通知を送りたい」「レビュー作業をPlannerにタスクとして登録したい」など次々とやりたいことが出てくるんじゃないかと思います。

ここまでの操作を一度やってみると、なんとなくやり方に見当が着くようになってると思うので、ここから先は是非、自分の力でやってみてください。

終わり


この記事が気に入ったらサポートをしてみませんか?