松本典子の「はじめよう!Azure Logic Apps/Power Automateでノーコード/ローコード」 第11回
画像を送信すると含まれる文字をAI Builderが書き起こして返信してくれるボット
ノーコード+AI BuilderでLINEボットを作ってみよう《ワークフロー作成編》
2022年02月22日 08時00分更新
1-1. トリガーの作成
フローのデザイナー画面が開くので、まずはフローの自動実行条件となるトリガーを設定します。
トリガーには「HTTP要求の受信時」コネクタを利用し、ユーザーがLINEで写真を送信したら実行されるように設定します。
LINEから送信された画像を受信して処理を行うため、「要求本文のJSONスキーマ」には以下のJSONをコピー&ペーストしてください。
{
"type": "object",
"properties": {
"destination": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "string"
},
"contentProvider": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
}
},
"imageSet": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"index": {
"type": "integer"
},
"total": {
"type": "integer"
}
}
}
}
},
"timestamp": {
"type": "integer"
},
"source": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"userId": {
"type": "string"
}
}
},
"replyToken": {
"type": "string"
},
"mode": {
"type": "string"
}
},
"required": [
"type",
"message",
"timestamp",
"source",
"replyToken",
"mode"
]
}
}
}
}
なお、この段階では上部の「HTTP POSTのURL」は空欄になっています。このURLはのちほどLINE側の設定で必要になりますが、ワークロードを「保存」しないとここにURLが表示されません。
しかしPower Automateでは、最低でも1つずつトリガーとアクションのコネクタを設定しないと、ワークロードを保存できない仕組みになっています。ですので、先にアクションの設定を行います。
1-2-1. アクションの作成:「変数」コネクタ
AI Builderを使って画像解析(文字の読み取り)を行った結果の文字列データを格納するため、「変数」コネクタを利用します。検索窓に「変数」と入力し、一覧に表示される変数コネクタをクリックします。
変数コネクタのアクション一覧から「変数を初期化する」をクリックします。
変数を初期化するアクションは、以下のように設定します。
- 名前:わかりやすい変数名を入力(今回は「Extracted text」)
- 種類:「文字列」を選択
1-2-2. アクションの作成:「Apply to each」アクション
続いて、トリガーのコネクタでLINEから受け取ったデータに基づき、LINEから画像を取得して文字の読み取り処理を行っていきます。ここでは「Apply to each」アクション※注を使います。
※注:Apply to eachは、前のフローから複数の値が渡されたときに、それぞれの値に処理を適用する(それぞれの値を使って処理を繰り返し実行する)制御を行うアクションです。詳しい説明は省きますが、今回はトリガーのコネクタでLINEから取得した「events」が複数の値を格納するアレイ(配列)であるため、Apply to eachで処理を行っています。この後に出てくるApply to eachアクションも同様です。
まず検索窓に「コントロール」と入力し、一覧に表示される「コントロール」をクリックします。
アクション一覧の中から「Apply to each」をクリックします。
「動的なコンテンツ」の中から「events」をクリックします。これでこのApply to eachアクションの設定は完了です。
1-2-3. アクションの作成:「HTTP」コネクタ
LINEから送信された画像を取得して、後続のアクションで利用できるようにします。なおここから後のコネクタ(アクション)は、Apply to eachアクションの枠内にある「アクションの追加」をクリックして、Apply to eachの枠内に追加していきます。
「HTTP」コネクタを選択します。
- タブは「組み込み」をクリック
- 一覧に表示される「HTTP」をクリック
アクションの一覧から「HTTP」をクリックします。
HTTPアクションの設定として、以下の内容を入力します。
- 方法:「GET」を選択
- URI:
「 https://api-data.line.me/v2/bot/message/@{items('Apply_to_each')?['message']?['id']}/content 」
と入力 - ヘッダー:左側に「Authorization」と入力。その右側には「Bearer(半角スペース)」に続けて、「0. LINEチャネルアクセストークンの発行」で表示されたチャネルアクセストークンのテキストをコピー&ペースト
この連載の記事
-
第43回
Team Leaders
社内からの質問に自動回答! AI Builder+ノーコードでQ&Aボットを作ろう -
第42回
Team Leaders
Power Automateで複数人の承認(多段階承認)ワークフローを簡単作成しよう -
第41回
Team Leaders
重要なTeamsメッセージの見失い/見落としを防ぐPower Autometeのフローを作ろう -
第40回
Team Leaders
クラウドフローからデスクトップフローを「Picture-in-Picture」で起動する -
第39回
Team Leaders
面倒なカレンダー登録作業を生成AIで自動化するワークフローを作ろう -
第38回
Team Leaders
生成AIに日本語プロンプトで指示を出し、メールから情報を抽出してもらおう -
第37回
Team Leaders
フォルダー内のすべてのファイルを添付してメールを自動送信するフローを作ろう -
第36回
Team Leaders
ローカルPCのテキストファイルをPower Automateに読み込ませて活用しよう -
第35回
Team Leaders
受信メールの添付ファイルを種類に応じたフォルダに自動保存する -
第34回
Team Leaders
Power AutomateでTeamsのチーム全員にメンションを送る方法 -
第33回
Team Leaders
Power AutomateのCopilotは日本環境でも使えるか? 試してみました - この連載の一覧へ