[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日現在での画面構成になります。
左側のメニューから[+ 作成]を選択して、次に画面上部の[自動化されたフロー]を選択してください。
初期設定をするためのメニューが表示されるので、[フロー名]に適当な名前を入力して、ここでは[スキップ]を押します。
次に、最初のトリガー(引き金)となる動作を設定する画面が出ます。
[コネクタとトリガーを検索する]に[要求]と入力して[HTTP 要求の受信時]を選択します。
HTTP要求の受信時のコンポーネントを設定します。
[要求本文の JSON スキーマ]という欄に以下の文字列を入力。
{
"type": "object",
"properties": {
"post_id": "number",
"post": {
"type": "object",
"properties": {
"post_title": "string",
"guid": "string"
}
}
}
}
次に、下の[+ 新しいステップ]をクリックします。
[コネクタとアクションを検索する]から「teams」を検索して、アクションの[メッセージをフローボットとしてチャンネルに投稿する(プレビュー)]を選択します。
Teamsでの投稿先になる[チーム]と[Channel]をドロップダウン選び、[Message]に投稿する内容を入力します。
以下の文字列を貼り付けると上の図のような形になります。
「@{triggerBody()?['post']?['post_title']}」がレビュー待ちに登録されました。
<a href="@{triggerBody()?['post']?['guid']}">内容を見る</a>
ここまで入力できたら下の[保存]を押します。
すると下の図のように[HTTP POSTのURL] にWebhookの送信先となるURLが生成されます。コピーして保管しておいてください。
注意:
[HTTP POSTのURL]からコピーしたURLは、「 / (スラッシュ) 」であるべき箇所が「%2F」になっているので、使用する際はテキストエディターなどで[%2F]を[ / (スラッシュ)]に置換してください。
※ この記事ではWordPressから送信されるguidというパラメーターをリンク先として設定していますが、厳密にいうとguidはURLのように見える一意識別子として使用されるパラメーターです。他にパーマリンク を取得する方法が見当たらなかったことと、機能的に問題がなかったのでこのようにしています。
WordPressからPower Automateに通知を送信する
前途したように「WP Webhooks」というプラグインを使用します。
ダッシュボードより[プラグイン]→[新規追加]と移動して[プラグインの検索...]から「WP Webhooks」を検索して、[今すぐインストール]→[有効化]まで進めてください。
次の左側のメニューから[設定]→[WP Webhooks]に移動します。
WP Webhooksの設定画面が表示されるので、タブメニューから[Settings]を選択します。
Activate "Send Data" Triggersの中から[Send Data On New Post]のチェックボックスをアクティブにして[Save All]をクリックします。
次にタブメニューから[Send Data]に移動して[Send Data On New Post]の見出しをクリックして入力フォームを展開します。
[Include your webhook url here]に先ほどPower Automateで生成したURLを入力して[ADD]をクリックします。
次に右側にある[Action]列の[Settings]をクリックします。
下の方までスクロールして[Trigger on initial post status change]の項目から[レビュー待ち]のみを選択して[Save Settigs]をクリックして右上の[×]でモーダルウィンドウを閉じて設定は終了です。
実際に試してみる
「寄稿者」権限で記事を作成する。または「投稿者以上」の権限でレビュー待ちとして投稿します。
[公開する]→[公開するレビュー待ちとして送信]と進む
するとTeamsのチャンネルにFlowボットからの通知が届きます。
[内容を見る]をクリックすると当該の投稿をレビューすることができます。
レビュー待ちの投稿は、著者と編集者権限以上の人以外にはアクセス出来ないので、編集者権限以上の人がレビュー→「公開する」までの作業を行ってください。
次にどうするか?
とりあえず、寄稿者がレビュー投稿を作成時にTeamsに投稿するまでの流れを書きました。
そのうち「レビューが承認されて記事が公開された時に通知を送りたい」「レビュー作業をPlannerにタスクとして登録したい」など次々とやりたいことが出てくるんじゃないかと思います。
ここまでの操作を一度やってみると、なんとなくやり方に見当が着くようになってると思うので、ここから先は是非、自分の力でやってみてください。
終わり
この記事が気に入ったらサポートをしてみませんか?