ユーザーから送信された画像ファイルを解析して、OCR 処理した結果をトークで返信してくれる LINE WORKS Bot です。
画像解析は Microsoft Azure Cognitive Services の Computer Vision を使います。
https://azure.microsoft.com/ja-jp/services/cognitive-services/computer-vision/
次のような操作のながれを想定します。
- LINE WORKS で Bot に画像ファイルを送信する
- Bot が画像を読み取って文字起こしした結果を返信してくる
LINE WORKS の トーク Bot API を利用します。
具体的には以下の API を実行しています。
TITLE: メッセージ受信 - Callback 形式 (message)
URL: https://developers.worksmobile.com/jp/document/100500901?lang=ja
ユーザーから送信される画像ファイルを受信します。
TITLE: コンテンツダウンロード
URL: https://developers.worksmobile.com/jp/document/1005026?lang=ja
受信した画像ファイルを取り出します。
TITLE: メッセージ送信 (text)
URL: https://developers.worksmobile.com/jp/document/100500801?lang=ja
解析結果のメッセージをユーザーに返信します。
Microsoft Flow を用いて、ほぼコーディングなしでサクっと作ってみましょう。
Microsoft Flow のフロー作成
要求本文の JSON スキーマを "サンプルのペイロードを使用してスキーマを生成する" で生成します。
ペイロードのサンプルは、こちらのページの記載を用います。
TITLE: メッセージ受信 - Callback 形式 (message)
URL: https://developers.worksmobile.com/jp/document/100500901?lang=ja
-> Request Example - type "image" の箇所
{
"type": "message",
"source": {
"accountId": "admin@example.com",
"roomId": "12345"
},
"createdTime": 1508062056427,
"content": {
"type": "image",
"resourceId": "WAAAQPwBexX2HnseNvvM9Zyhvp2kIRF3Ul7L7/aMVti8="
}
}
次に送信された画像を取得するために、"HTTP" をアクションに指定します。
コンテンツ ダウンロード API 実行用の設定を行います。
TITLE: コンテンツダウンロード
URL: https://developers.worksmobile.com/jp/document/1005026?lang=ja
最後に解析結果をユーザーにメッセージ送信するため Azure Automation のジョブを追加します。
詳細はこちらも参照してください。
TITLE: LINE WORKS + Azure Automation + Microsoft Flow で LINE WORKS Bot からトークメッセージ送信
URL: https://qiita.com/iwaohig/items/3056b95597772061d17b
動作確認
LINE WORKS で Bot に画像を送信します。しばらく待つと文字起こしされたテキストが Bot から返信されます。