24
24

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 3 years have passed since last update.

Power Automate と LINE で通信する方法

Last updated at Posted at 2021-04-22

#はじめに

表題の通り、Power Automate と LINE で通信する為の接続方法および送受信方法を記載します。

#LINE の設定

##LINE Developersにログイン
LINE Developers」から、ログインします。
お使いのLINE ID でログインしてください。
image.png

LINE Developers コンソール」を開きます。

##プロバイダーの作成
「新規プロバイダー作成」を選択します。名前は任意です。
image.png

##チャンネルの作成
「Messaging API」を選択します。
image.png

「チャンネルアイコン」、「チャンネル名」、「チャンネル説明」、「大業種」、「小業種」に任意の値を入力します。
image.png

同意項目にチェックし「作成」クリックします。
image.png

##チャンネルの設定
「Messaging API設定」を選びます。
image.png

前もって、QRコードをご利用のLINEアカウントで読み込む等し、チャンネル登録します。
image.png

「応答メッセージ」の「編集」を選択します。
image.png

「応答メッセージ」をオフにします。
image.png

元の画面に戻り、「チャンネルアクセストークン」で「発行」をクリックします。
image.png

アクセストークンをコピーしておきます。
image.png

#Power Automate の設定

「インスタント クラウド フロー」を選択し
image.png

##LINEからの受信を設定
フロー名に任意の値を設定し、「HTTP 要求の受信時」を選択します。
image.png

フローエディタが開いたら、「HTTP 要求の受信時」を開き、「サンプルペイロードを使用してスキーマを生成する」をクリックし、
image.png

下記の値を入力し、「完了」します。
image.png

{
    "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"
        }
    }
}

ここで、一旦、フローの保存を行います。
image.png

保存すると、「HTTP 要求の受信時」にPOST用のURLが生成されますので、値をコピーし、
image.png

LINE Developers にて作成したチャンネルの、「Messaging API」にて、「Webhook設定」で「編集」を選択し、
image.png

Power Automate で生成されたPOST用URLを選択し、更新します。
image.png

さらに、「Webhookの利用」をONにします。
image.png

ここで、チャンネル登録したLINEアカウントからメッセージを送付すると、
image.png

Power Automate で受信できました!
image.png

##LINEからのメッセージの取得
LINEで入力したメッセージは以下の内容で取得が可能です。

triggerBody()?['events']?[0]?['message']?['text']

image.png

取得できました!
image.png

##メッセージ送信ユーザーのIDを取得
LINEからメッセージを送信したユーザーのIDは以下の内容で取得が可能です。
このユーザーIDを返信時に指定することで、メッセージを送信した人に返すという仕組みが成り立ちます。

triggerBody()?['events']?[0]?['source']?['userId']

image.png

##LINEへの送信を設定

「HTTP」アクションを選択します
image.png

image.png
各項目に以下の値を設定してください。

項目 キー
方法 - 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側のプロバイダーごとに一意です。
image.png

##動作確認

LINEからメッセージを送信すると
image.png

海の怪物クラーケンが冷静に返信してくれました。

#まとめ

LINE と Power Automate の組み合わせはとても強力です。
この記事が便利で素敵なアプリを作る手助けになれば幸いです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?