今回は、Google Apps Script (GAS)とLINE Messaging APIを組み合わせて、AIがまるでスタンプみたいに画像を自動で返信してくれるLINE Botを作った話です。
きっかけは「AIにスタンプを送らせたい」
始まりは、シンプルに「AIがテキストだけじゃなくて、画像も送れたらもっと楽しいのに」っていう発想でした。LINEのスタンプみたいな感覚で、会話の流れに合わせてピッタリな画像をAIが選んでくれたら最高だなって。
最初に考えたのは、Google Driveに置いてある画像をLINEに送る方法でした。「ファイルIDを指定して送れるかな?」って思ったんですが、これが一筋縄ではいかなかったんです。
Google Driveの画像をLINEに送る壁と突破口
LINE Messaging APIで画像を送るには、基本的に「インターネット上に公開されていて、LINEのサーバーがアクセスできるHTTPSのURL」が必要になります。Google Driveの共有リンクをそのまま使うとエラーになることが多くて、最初はちょっと戸惑いました。
でも、調べてみると、Google Driveの共有リンクを特定の形式(https://drive.google.com/uc?id=ファイルID)に加工することで、無事に画像を送れることが判明!これでGoogle Driveにストックした画像をLINE Botから使える道が開けました。
ここで送りたいGoogle Driveの画像は、LINEからアクセスできるように「リンクを知っている全員が閲覧可」の共有設定にしておく必要があるようです。
「画像アップロードAPI」の誤解と真実
次に、「LINE Messaging APIに画像を直接アップロードできればもっと簡単なんじゃ?」って考えました。確かに、他のAPI(例えばLINE WORKSのAPI)には画像を直接アップロードして、ファイルIDでメッセージを送る機能があります。私も最初は「これだ!」と思ったんです。
しかし、一般ユーザー向けのLINE Messaging APIでは、画像メッセージを送る際の基本的な仕組みは、あくまで外部のURLを参照する形なんですよね。画像を直接アップロードしてファイルIDで送る、という使い方は基本的には想定されていません。ここはちょっとした勘違いだったんですが、LINE Messaging APIの仕様を深く理解する良い機会になりました。
AIとスタンプ風画像の連携!GASで自動化
最終的に、私がたどり着いたのはこんな仕組みです。
- Google Driveにスタンプ風画像をストック!
「ありがとう」とか「なるほど」とか、会話でよく使うワードに合わせた画像をGoogle Driveにアップロードし、そのファイルIDをメモしておきます。

- スプレッドシートで画像とキーワードを管理!
Googleスプレッドシートの「StickerList」というシートに、画像ファイルIDと、それに対応するキーワード(メッセージ)を登録します。

- GASでLINE Messaging APIを操作! LINE Botがユーザーからのメッセージを受け取ると、AIが応答を生成します。以下のように指示をすることで、スタンプとテキストを分けて結果を返してくれます。
【返答方法】
あなたは以下のJSON形式で返答すること。他の形式は一切許容しない。
{
"message": "ここに会話内容の文字列を入れる。",
"sticker": "null または使いたいStickerIdを文字列で入れる。"
}
もちろん、GASでのAPIリクエスト送信やJSONデータの処理、エラーハンドリングもしっかり組み込みました。特に、JSON.parse()でエラーが出た場合の処理は、GASでBotを作る上では必須のテクニックですね。
組み込んだ結果、スタンプ風画像を返してくれるようになりました。
まとめ:AIがもっと身近で感情豊かに!
今回の取り組みで、AIがテキストだけでなく、画像という形で「感情」や「ニュアンス」を伝えられるようになったのは大きな進歩だと感じています。まるで人間同士の会話みたいに、言葉の合間にスタンプがポンと送られてくるような、そんな体験がAIとのやり取りで実現できるようになったんですから。
この仕組みは、LINE Botを使った顧客対応や情報提供など、様々な場面で応用できる可能性を秘めていると思います。もし「私もこんなことやってみたい!」と思った方がいたら、ぜひチャレンジしてみてください。Google Apps Scriptは、LINE Bot開発の強力な味方になりますよ!
それでは、また次の挑戦でお会いしましょう!

