LoginSignup
2
3

More than 3 years have passed since last update.

Gmail の新着メールを LINE WORKS に通知するトーク BOT

Last updated at Posted at 2019-06-01

Gmail に届くメールを LINE WORKS に通知します。

特定の差出人からのメールや、Subject に特定の文字列が含まれているときなどの条件設定が可能です。

重要な人からのメールに素早く気づいたり、IoT 機器やネットワーク デバイスからの通知メールを LINE WORKS のトークで気づいたり出来るようになります。

image.png

Azure Automation

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

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

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

Bot No. 、API 認証関連の値は、後ほど LINE WORKS の Developer Console を参照してく入力しなおしてください。Bot No. は Bot 登録時に生成されます。

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

  [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": $botno,
    "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 の準備

フローのトリガーとして "Gmail" "新しいメールが届いたとき" を指定します。

image.png

ここでは特定の差出人を条件に指定しました。用途に応じた設定を行ってください。

image.png

Azure Automaiton をアクションとして追加

image.png

ここでは、[ジョブの作成] を選択します。

サブスクリプション、リソース グループ、Automation アカウント、Automation のハイブリッド worker グループ、Runbbok 名、ジョブの待機、パラメータを指定します。

Runbook Parameter でトークメッセージに含める情報を、"動的なコンテンツの追加" で選択できます。

ここでは、Subject とスニペット (本文の一部) を含めてみます。

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 -> off
- 複数人のトークルームに招待可 -> off
- 管理者 -> 任意のメンバーを指定

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

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

LINE WORKS 管理画面での作業

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

image.png

動作確認

Gmail に条件に合致するメールが配信された際にトーク Bot からトーク メッセージが送られることを確認します。

2
3
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
2
3