LoginSignup
19
8

More than 1 year has passed since last update.

LINEから送った画像をコネクタで使う方法(Azure Logic Apps / Power Automate)

Last updated at Posted at 2021-12-23

※本記事は「LINE DC Advent Calendar 2021 (クリスマスプレゼント付き) Advent Calendar 2021 24日目」の記事です。

こんにちわ、 のりじ です。
前回、「LINEで使える「名刺リーダーbot」を完全ノーコードで自作してみた話(Power Automate × LINE Messaging API)」という記事を書きました。
Microsoftが提供しているノーコード / ローコードサービスのPower Automate / Azure Logic Apps は、LINE Messaging APIをノーコードで利用できます。
LINEのトークルームから画像(トークルームのカメラ撮影の画像も)を送信して処理する方法はやり方を覚えていると便利だなと思ったので自分の忘備録も兼ねてやり方を紹介します。

1. トリガーの設定(Power Automate / Azure Logic Apps共通)

Power Automate / Azure Logic Appsどちらも、LINE Messaging APIを利用する場合のトリガーは「要求」を利用します。
ただし、Power Automateの場合「要求(HTTP)コネクタ」はプレミアムコネクタ扱いとなるので利用時はご自身のライセンスを確認してください。

line001.jpg

検索窓に「要求」と入力すると表示されます。(図はLogic Appsの画像)

line002.jpg

トリガーに表示される「HTTP要求の受信時」を選びます。

line003.jpg

赤枠内の「要求本文のJSONスキーマ」に、以下のJSONをコピペします。


{
    "properties": {
        "events": {
            "items": {
                "message": {
                    "properties": {
                        "address": {
                            "type": "string"
                        },
                        "fileName": {
                            "type": "string"
                        },
                        "fileSize": {
                            "type": "number"
                        },
                        "id": {
                            "type": "string"
                        },
                        "latitude": {
                            "type": "number"
                        },
                        "longitude": {
                            "type": "number"
                        },
                        "packageId": {
                            "type": "string"
                        },
                        "stickerId": {
                            "type": "string"
                        },
                        "text": {
                            "type": "string"
                        },
                        "title": {
                            "type": "string"
                        },
                        "type": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "postback": {
                    "properties": {
                        "data": {
                            "type": "string"
                        }
                    },
                    "type": "object"
                },
                "properties": {
                    "replyToken": {
                        "type": "string"
                    },
                    "source": {
                        "properties": {
                            "groupId": {
                                "type": "string"
                            },
                            "type": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "timestamp": {
                        "type": "number"
                    },
                    "type": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
}

2. アクションの設定

LINEのトークルームから送信された画像を取得するための処理部分です。
トリガーと違い、アクション部分はPower AutomateとLogic Appsそれぞれで選択するコネクタ名が変わります。

2-1. Logic Appsの場合に選択するコネクタ類

まずはLogic Appsから説明します。

2-1-1. For eachコネクタ

line005.jpg

検索窓に「制御」と入力しクリックすると図のような一覧が表示されるので、一覧の中から「For each」をクリック。

line004.jpg

「以前の手順から出力を選択」には、「HTTP要求の受信時」の動的なコンテンツ「event」を選択します。

2-1-2. HTTPコネクタ

line006.jpg

検索窓に「HTTP」と入力してクリックすると図のような一覧が表示されるので、一覧の中から「HTTP」をクリック。

line007.jpg

HTTPコネクタは以下の内容を入力していきます。

  1. 方法:「GET」を選択
  2. URI:以下の内容をコピペします https://api-data.line.me/v2/bot/message/@{items('For_each')?['message']?['id']}/content
  3. ヘッダー:「キーの入力」部分に「Authorization」、「値の入力」部分は「Bearer 」に続けてLINE Developersの該当チャネル->「Messaging API設定」ページの「チャネルアクセストークン」をコピペします。 (図の赤枠内の内容)

line008.jpg

2-1-3. 以降のコネクタの設定

line009.jpg

後続のコネクタでは、「HTTP」の動的なコンテンツ「本文」を選択することでLINEから送信した画像を利用できます。

line010.jpg

図のように、HTTPコネクタ以降はFor eachの中に入れるのもポイントです。

2-2. Power Automateの場合に選択するコネクタ類

次はPower Automateの場合について説明します。

2-2-1. Apply to eachコネクタ

line011.jpg

検索窓に「コントロール」と入力しクリックすると図のような一覧が表示されるので、一覧の中から「Apply to each」をクリック。

line012.jpg

「以前の手順から出力を選択」には、「HTTP要求の受信時」の動的なコンテンツ「event」を選択します。

2-2-2. HTTPコネクタ

line013.jpg

検索窓に「HTTP」と入力してクリックすると図のような一覧が表示されるので、一覧の中から「HTTP」をクリック。

line014.jpg

HTTPコネクタは以下の内容を入力していきます。

  1. 方法:「GET」を選択
  2. URI:以下の内容をコピペします https://api-data.line.me/v2/bot/message/@{items('Apply_to_each')?['message']?['id']}/content
  3. ヘッダー:「キーの入力」部分に「Authorization」、「値の入力」部分は「Bearer 」に続けてLINE Developersの該当チャネル->「Messaging API設定」ページの「チャネルアクセストークン」をコピペします。 (Logic Appsのときと同じ)

2-2-3. 以降のコネクタの設定

Logic Appsと同様に、後続のコネクタでは「HTTP」の動的なコンテンツ「本文」を選択することでLINEから送信した画像を利用できます。

line015.jpg

図のように、HTTPコネクタ以降はApply to eachの中に入れるのもポイントです。

3. LINE側の設定

最後にLINE Developersの設定についてです。

line016.jpg

作成したチャネルのMessaging APIの項目のうち、「Webhook設定」と「Webhookの利用」の部分が図のようにしておいてください。
トリガーの「HTTP要求の受信時」HTTP POSTのURIは、ワークフローを一度保存すると自動で表示されます。
表示後、LINE Developerにコピペしてください。

4. 最後に

Logic Apps / Power AutomateでLINE Messaging APIを利用する場合、トリガー部分のJSONとアクション部分の取得のやり方がわかっていれば、本当に簡単に利用することができます。
ノーコードでLINE BOTを作成する方法の1つとしてぜひ!

19
8
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
19
8