1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LINE WORKS オウム返し BOT を Microsoft FLOW で作成

Last updated at Posted at 2019-05-17

こちらの記事で、Microsoft Flow で何かしらのトリガーを基に、定型のメッセージを送る LINE WORKS BOT の作成方法を説明しました。

TITLE: LINE WORKS + Azure Automation + Microsoft Flow で LINE WORKS Bot からトークメッセージ送信
URL: https://qiita.com/iwaohig/items/3056b95597772061d17b

本記事では、ユーザーのトークをトリガーとし、送られたメッセージをオウム返しする BOT を作成してみます。

Azure Automation

上述の記事を参照して、Azure Automation の設定を行ってください。
ただし、PowerShell のスクリプトは、ユーザー ID とメッセージの内容をパラメータで受け取るために、以下のものを利用してください。

Bot No. は、後ほど LINE WORKS の Developer Console で Bot 登録時に生成されるものを記述しなおしてください。

Param
(
  [Parameter (Mandatory= $true)]
  [string] $accountId,

  [Parameter (Mandatory= $true)]
  [string] $message
)

$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")

$json = @"
{
    "botNo": <bot No.>,
    "accountId": "$accountId",
    "content": {
        "type": "text",
        "text": "$message"
    }
}
"@

$Body = [System.Text.Encoding]::UTF8.GetBytes($json)
$Uri = "https://apis.worksmobile.com/<API ID>/message/sendMessage/v2"
Invoke-RestMethod -Uri $Uri -Method Post -Header $header -Body $Body

Azure Automation の Runbook でのパラメータの利用は、こちらの記事で説明されています。

TITLE: Runbook の入力パラメーター
URL: https://docs.microsoft.com/ja-jp/azure/automation/runbook-input-parameters

Microsoft Flow

TITLE: Microsoft Flow でのフローの作成
URL: https://docs.microsoft.com/ja-jp/flow/get-started-logic-flow

Microsoft Flow から Azure Automation の Rubook を呼び出して実行できます。これによって、Microsof Flow で連携できる各種 Web サービスの動作などをトリガーに LINE WORKS の Bot からトーク メッセージが送信できます。

ここでは、フローのトリガーとして [HTTP 要求の受信時] を用います。これにより、ユーザーから送信されたメッセージを解析し、送信者にオウム返しでメッセージを送信します。

[要求本文の JSON スキーマ] を [サンプルのペイロードを使用してスキーマを生成する] を利用して作成します。

image.png

サンプルの JSON ペイロードは LINE WORKS の Developers サイトの "メッセージ受信 - Callback 形式 (message)" の記事中の Request Example として掲載された以下を用います。

{
  "type": "message",
  "source": {
    "accountId": "admin@example.com",
    "roomId": "12345"
  },
  "createdTime": 1470902041851,
  "content": {
    "type": "text",
    "text": "hello"
  }
}

Microsoft Flow がサンプル ペイロードを解析してスキーマを生成してくれます。スバラシイ!!

image.png

[method] は "POST" を指定します。

なお、Flow の保存時に、この Http 要求の受信用の URL が生成され、これを LINE WORKS の Developer Console で Callback URL として利用します。

"Http 要求の受信時" でトークを受けた内容を Azure Automation でオウム返しするために、[Azure Automation] - [ジョブの作成] のアクションを追加します。
image.png

スクリーンショットのように各項目を選択し、スクリプト内の 2 つのパラメータを指定します。
image.png

LINE WORKS Developer Console の準備

LINE WORKS でトークボット API を利用するため、LINE WORKS の Developer Console で、以下の作業を行います。

API 認証の準備

  • API ID 発行
  • サーバー API のコンシューマーキー発行
  • サーバー API の Server Token

手順はこちらのページの情報を参照します。
https://developers.worksmobile.com/jp/document/1002002?lang=ja

Bot 登録

Bot メニューで [登録] ボタンをクリックし、以下の項目を入力し、保存をクリック

  • Bot名 -> 任意の名前
  • 「説明」-> 任意の説明文
  • Callback URL -> Microsoft Flow の Http 受信時の要求で生成された URL
  • 複数人のトークルームに招待可 -> off
  • 管理者 -> 任意のメンバーを指定

登録すると Bot No. が生成されます。

API 認証の情報と、Bot No. を Runbook のスクリプトに記述します。

LINE WORKS 管理画面での作業

LINE WORKS の管理画面の [サービス]-[Bot] メニューで当該 Bot を追加します。

image.png

動作確認

LINE WORKS で Bot にメッセージを送ると、Bot から同じ内容がオウム返しされることを確認します。

1
1
0

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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?