LoginSignup
3

More than 3 years have passed since last update.

posted at

LINE WORKS + Azure Automation + Microsoft Flow で LINE WORKS Bot からトークメッセージ送信

こちらの記事で 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 に指定します。

image.png

image.png

ジョブが完了し、正しく応答があることが確認できます。

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

image.png

ここではテスト目的で Flow のモバイル アプリのボタンをトリガーにしていますが、実際には利用目的に応じた設定を行います。

動作確認

Flow のジョブの作成画面から "テスト" をクリックし、LINE WORKS にトークメッセージが送られることを確認します。

正常動作が確認できれば、ジョブを保存して、実際にトリガーとなるアクションの後にメッセージが届くことを確認します。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3