こちらの記事で PowerShell のコマンドレット操作で LINE WORKS のトーク BOT API を用いて、任意のメンバーやトークルームにメッセージを送る方法を紹介しました。
TITLE: PowerShell から トーク Bot API で LINE WORKS にメッセージ送信
URL: https://qiita.com/iwaohig/items/92a3b5b4af288c22a96a
さらに、こちらの記事では Windows のタスク スケジューラを用いて、エラー イベントの記録などをトリガーに Bot からトークで通知を送る方法を紹介しました。
TITLE: Windows のイベント ログに特定のイベントが記録されたら LINE WORKS の Bot で通知
URL: https://qiita.com/iwaohig/items/8853ed4433f6653396c2
本記事では、Microsoft Flow と連携して、各種 Web サービスと連動して、LINE WORKS のトーク Bot API からメッセージを送信してみます。
Microsoft Flow と連動して PowerShell スクリプトを実行するために Azure Automation を利用します。
#Azure Automation
Azure Automation の利用開始にあたっては、Azure Portal で "Automation アカウント" を作成し、"Runbook の種類"が PowerShell" の Runbook を作成します。
TITLE: Azure Automation アカウントを作成する
URL: https://docs.microsoft.com/ja-jp/azure/automation/automation-quickstart-create-account
TITLE: Azure Automation Runbook を作成する
URL: https://docs.microsoft.com/ja-jp/azure/automation/automation-quickstart-create-runbook
この Runbook に以下のスクリプトを記述します。
$header = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$header.Add("Content-Type","application/json; charset=UTF-8")
$header.Add("consumerKey","<Server API Consumer Key>")
$header.Add("Authorization","Bearer <Server Token>")
$header.Add("Cache-Control","no-cache")
$request = @"
{
"botNo": <bot No.>,
"accountId": "<user id>",
"content": {
"type": "text",
"text": "<メッセージ本文>"
}
}
"@
$Body = [System.Text.Encoding]::UTF8.GetBytes($request)
$Uri = "https://apis.worksmobile.com/<API ID>/message/sendMessage/v2"
Invoke-RestMethod -Uri $Uri -ContentType 'application/json' -Method Post -Header $header -Body $Body
なお、このスクリプトでは アドレスを基にした LINE WORK の API 認証トークンを利用するため、Azure Automation の Hybrid Runbook Worker 機能を用います。
TITLE: Windows Hybrid Runbook Worker をデプロイする
URL: https://docs.microsoft.com/ja-jp/azure/automation/automation-windows-hrw-install
TITLE: Hybrid Runbook Worker での Runbook の実行
URL: https://docs.microsoft.com/ja-jp/azure/automation/automation-hrw-run-runbooks
Runbook の作成が完了したら "開始" ボタンのクリックで正常に動作することを確認しましょう。この際に実行設定の実行対象をハイブリッド Worker に指定します。
ジョブが完了し、正しく応答があることが確認できます。
#Microsoft Flow
Microsoft Flow から Azure Automation の Rubook を呼び出して実行できます。これによって、Microsof Flow で連携できる各種 Web サービスの動作などをトリガーに LINE WORKS の Bot からトーク メッセージが送信できます。
TITLE: Microsoft Flow でのフローの作成
URL: https://docs.microsoft.com/ja-jp/flow/get-started-logic-flow
ここではテスト目的で Flow のモバイル アプリのボタンをトリガーにしていますが、実際には利用目的に応じた設定を行います。
#動作確認
Flow のジョブの作成画面から "テスト" をクリックし、LINE WORKS にトークメッセージが送られることを確認します。
正常動作が確認できれば、ジョブを保存して、実際にトリガーとなるアクションの後にメッセージが届くことを確認します。