LoginSignup
3

More than 3 years have passed since last update.

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

Posted at

こちらの記事で 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
  3. You can use dark theme
What you can do with signing up
3