見出し画像

GAS|LINE bot(ボット)で画像から文字起こし(OCR)する|秘書 bot|活用事例|非エンジニアのための「Google Apps Script」

Google Apps Script(GAS)LINE bot(ボット)を組み合わせて「業務改善・効率化」を行う企業の事例は多く、弊社でも積極的に導入しています。

この note では、実際に弊社で導入している GAS × LINE bot(ボット)活用事例を、その全プログラムと共に公開します(プログラムはダウンロード提供します)。

内容は以下の通りです。

・ユーザが LINE bot(ボット)に投稿した画像を GAS で受信する
・画像から OCR(光学式文字認識)によってテキストを取得する
・テキストを 
GAS から LINE bot(ボット)へ返信する

▲図解(流れのイメージ)

LINE bot(ボット)に画像を投稿すると「文字起こし」してくれるサービスは既に有名です。しかし、あまりに手軽なため、悪意あるサービス提供者に「機密画像」を気軽に投稿してしまうリスクがあります。企業で使うべきサービスではありません

ですが、「文字起こし」は非常に便利です。GAS では、エンジニアでなくとも、それを簡単に自社で実現できます。弊社の場合は、自社製の OCR LINE bot(ボット)で、主に以下の用途で役立っています。

・書籍内のプログラムコードの読み取り
・名刺の読み取り(からの一覧管理)
・受領した「紙」書類の電子文書化
・「外国語」書類の翻訳(和訳)

実は LINE アプリ自体に「OCR」機能は備わっています。しかし、Google OCR の方が圧倒的に読み取り精度が高いです。言語設定も不要です(LINE アプリでは言語設定が必要で、文字の読み落としも多い)。


# 完成した LINE bot でイメージを掴もう!

以下の LINE bot(ボット)は、このプログラムが完成した実際の状態です。どのように運用されるのか、具体的なイメージをまずは掴みましょう。

LINE アプリの友だちタブを開き、画面右上にある [友だち追加] > [QR コード] をタップして、コードリーダーで以下をスキャンしてください。

▲QR コードで LINE の友だちを追加

以下のように、画像が横に倒れてしまっていても、Google OCR はキレイに文字を読み取ってくれます

名刺は勿論、以下のような郵便物(DM、公的文書、年賀状など)の電子管理にも、非常に役立ちます。

▲完成した LINE bot(ボット)

縦書きの文章と横書きの文章が混在していても(新聞や雑誌などでも)、正確に読み取ってくれるので、Google OCR のその精度には驚くばかりです。


# GAS のプロジェクト(スクリプト)を作成する

では、GAS のプログラムを始めましょう!

GAS では、一つのプログラム(やサービス)の仕組みを「プロジェクト(スクリプト)」という単位で作成し管理します。

以下の記事を参考に、まずは GAS の「プロジェクト(スクリプト)」を作成してください。


# LINE bot のプロバイダーとチャネルを作成する

LINE bot(ボット)を使うときに必要となるのが、「プロバイダー」と「チャネル」です。

・プロバイダー → サービス提供元(個人・企業)
・チャネル   → サービス

と捉えてしまっても問題ないでしょう。

以下の記事を参考に、LINE bot(ボット)の「プロバイダー」と「チャネル」を作成してください。


# GAS の Webhook URL を公開する

GAS が LINE bot(ボット)からリアルタイムに情報を受信するには、「Webhook URL」が必要です。

以下の記事を参考に、GAS の「Webhook URL」を公開してください。


# LINE bot に Webhook URL を設定する

公開した GAS の「Webhook URL」を LINE bot(ボット)に設定して、情報のリアルタイムな送受信を実現します。

以下の記事を参考に、GAS の「Webhook URL」を LINE bot(ボット)に設定してください。


# LINE bot のアクセストークンを発行する

GAS から LINE bot(ボット)へ何らかのメッセージを返信したい場合、GASLINE bot(ボット)から画像などの情報を受信したい場合、LINE が公式に提供している「Messaging API」を使うことになります。

この「Messaging API」を使うときに必要となるのが「アクセストークン」です。

以下の記事を参考に、LINE bot(ボット)の「アクセストークン」を発行してください。

発行できたら、忘れない内に、GAS にこの「アクセストークン」を保存しておきます。

以下の記事を参考に、「プロジェクト(スクリプト)のプロパティ」に「アクセストークン」を保存してください。

プロパティの名前」欄には「line_channel_access_token」と入力し、「」欄には「アクセストークン」を入力します。

プロパティの名前:
line_channel_access_token

値:
tMdC8WFu6dxbKd5+ATDJRpPn6S4gt2ahoLtEMR4Lp7W0mRjFMhuUe9SnAQBmiDVQOqm4Kg/b03qKuIxUnAyGtwdB04t89/1O/w1cDnyilFU=

※このトークンは、記事執筆用のダミー文字列です
※トークンは第三者へ開示しないよう、取り扱いには十分ご注意ください


# Google ドライブに一時保存フォルダを作成する

LINE bot(ボット)から「画像」を受信したら、GASOCR を実行するために、それを一時的に保存する必要があります。

Google ドライブのフォルダに画像を保存し、その保存されたファイルに対して OCR を実行します。

GAS から Google ドライブのフォルダへ画像を保存するには、その「フォルダ ID」を知っている必要があります。

以下は、「マイドライブ」に「OCR」という名前のフォルダを作成した例です。

▲「マイドライブ」に「OCR」というフォルダを作成

ブラウザに表示されているこのフォルダの URL に、「フォルダ ID」が含まれています。

URL:
https://drive.google.com/drive/folders/1o7EtdfaVZH4GkkguR2guR2guR2g-sA

フォルダ ID:
1o7EtdfaVZH4GkkguR2guR2guR2g-sA

GAS に、この「フォルダ ID」を保存しておきます。

以下の記事を参考に、「プロジェクト(スクリプト)のプロパティ」に「フォルダ ID」を保存してください。

プロパティの名前」欄には「google_drive_folder_ocr_id」と入力し、「」欄には「フォルダ ID」を入力します。

プロパティの名前:
google_drive_folder_ocr_id

値:
1o7EtdfaVZH4GkkguR2guR2guR2g-sA


# Drive API を有効にする

GAS で実行する OCR は、Google ドライブに備わる機能です。Google が公式に提供している「Drive API」を使う必要があります。事前に、その機能を有効(ON)にしておきます。

以下のように、プロジェクト画面のメニュー「リソース」から「Google の拡張サービス」を選択します。

▲「Google の拡張サービス」を選択

Drive API」を「ON」にします。スイッチが緑色になります。

▲Google の拡張サービス

OK」ボタンをクリックします。これで、有効になりました。

以上で事前準備は全て整いました。以下では、機能を実現するプログラムを実装していきます!


# OCR を実行する

LINE bot(ボット)から受信した画像に対して OCR を実行する機能をプログラムします。実装は以下の通りです。

事前に「スクリプトのプロパティ」へ保存しておいた一時保存用の「フォルダ ID」を、この機能で使っています。

ここから先は

10,465字 / 11画像 / 1ファイル

¥ 360

食費入力のみ家計簿アプリ「食費簿」、自慰管理アプリ「アイナーノ」、どちらも御陰様で好調です。より良いアプリ開発に役立てます。