#はじめに
表題の通り、Power Automate と LINE で通信する為の接続方法および送受信方法を記載します。
#LINE の設定
##LINE Developersにログイン
「LINE Developers」から、ログインします。
お使いのLINE ID でログインしてください。
「LINE Developers コンソール」を開きます。
##プロバイダーの作成
「新規プロバイダー作成」を選択します。名前は任意です。
##チャンネルの作成
「Messaging API」を選択します。
「チャンネルアイコン」、「チャンネル名」、「チャンネル説明」、「大業種」、「小業種」に任意の値を入力します。
##チャンネルの設定
「Messaging API設定」を選びます。
前もって、QRコードをご利用のLINEアカウントで読み込む等し、チャンネル登録します。
元の画面に戻り、「チャンネルアクセストークン」で「発行」をクリックします。
#Power Automate の設定
##LINEからの受信を設定
フロー名に任意の値を設定し、「HTTP 要求の受信時」を選択します。
フローエディタが開いたら、「HTTP 要求の受信時」を開き、「サンプルペイロードを使用してスキーマを生成する」をクリックし、
{
"type": "object",
"properties": {
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"replyToken": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"userId": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"timestamp": {
"type": "integer"
},
"mode": {
"type": "string"
},
"message": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "string"
},
"text": {
"type": "string"
}
}
}
},
"required": [
"type",
"replyToken",
"source",
"timestamp",
"mode",
"message"
]
}
},
"destination": {
"type": "string"
}
}
}
保存すると、「HTTP 要求の受信時」にPOST用のURLが生成されますので、値をコピーし、
LINE Developers にて作成したチャンネルの、「Messaging API」にて、「Webhook設定」で「編集」を選択し、
Power Automate で生成されたPOST用URLを選択し、更新します。
ここで、チャンネル登録したLINEアカウントからメッセージを送付すると、
##LINEからのメッセージの取得
LINEで入力したメッセージは以下の内容で取得が可能です。
triggerBody()?['events']?[0]?['message']?['text']
##メッセージ送信ユーザーのIDを取得
LINEからメッセージを送信したユーザーのIDは以下の内容で取得が可能です。
このユーザーIDを返信時に指定することで、メッセージを送信した人に返すという仕組みが成り立ちます。
triggerBody()?['events']?[0]?['source']?['userId']
##LINEへの送信を設定
項目 | キー | 値 |
---|---|---|
方法 | - | POST |
URI | - | https://api.line.me/v2/bot/message/push |
ヘッダ1 | Content-Type | application/json |
ヘッダ2 | Authorization | 'Bearer ' と [LINE Developersでコピーしたチャネルアクセストークン] |
本文 | - | [下記] |
本文には以下を設定します。
messages部分にFlex Messageの要素を設定することで、文字色やサイズを変えたり、画像を表示するといったリッチなメッセージの表示が可能です。
詳細はFlex Messageを送信するを参照ください。
{
"to": "[上記で取得したメッセージ送信ユーザーのID]",
"messages": [
{
"text": "[LINEに送るメッセージ]",
"type": "text"
}
]
}
今回のような「LINEから応答⇒返信」の場合には、LINEに返信する際に指定するユーザーIDは決まっていますが、
他のトリガー等で起動したフローからLINEにメッセージ送信する場合には、送信先ユーザーIDの指定が必要です。
チャネル設定画面の「チャネル基本設定」下部にある「あなたのユーザーID」になります。
送信先ユーザーIDはLINE側のプロバイダーごとに一意です。
##動作確認
海の怪物クラーケンが冷静に返信してくれました。
#まとめ
LINE と Power Automate の組み合わせはとても強力です。
この記事が便利で素敵なアプリを作る手助けになれば幸いです。