この記事では、Google Apps Script (GAS) を利用して、LINE BOTでユーザーにスマートフォンのカメラロール(写真ライブラリ)から画像を選択・送信させるための「カメラロールアクション」の実装方法を詳しく解説します。
本人確認書類の提出や、写真を使ったコミュニケーションなど、様々な用途で活用できる機能です。
公式ドキュメント:カメラロールアクション - LINE Developers


事前準備
LINE Developersでトークンを取得してください。
LINE BOT開発に不可欠なMessaging APIのチャンネルアクセストークンを取得する手順を、実際の画面キャリプチャを交えて詳しく解説します。LINE Developersへの登録からプロバイダー、チャンネル作成、トークン発行までを網羅。
LINEの送信先IDの調べ方はこの手順で確認できます。
Google Apps Script(GAS)を使って、LINE BOTと友だちになっているユーザーのIDを取得する方法を解説します。Webhook経由で送信されるイベント情報から、特定のユーザーを識別するための`userId`を抜き出すサンプルコードを紹介します。
GASのスクリプトプロパティの追加手順は過去の記事で紹介しています。
手順7〜からが該当手順です。
Google Apps Script(GAS)を使って、特定のキーワードに反応するシンプルなLINE BOTを作成する手順を解説します。Googleアカウントさえあれば無料で開発可能。初心者でもコピペで実装できるよう、コードと設定方法を詳しく紹介します。
『カメラロールアクション』を送るサンプルコード
以下のコードをGASのスクリプトエディタに貼り付けることで、指定したユーザーにカメラロールアクションを含むボタンテンプレートメッセージを送信できます。
/*
ボタンテンプレートメッセージを送る(camera_roll)
———————————–*/
function camera_roll_action() {
/* スクリプトプロパティのオブジェクトを取得 */
const prop = PropertiesService.getScriptProperties().getProperties();
/* ボタンテンプレートメッセージを送る(camera_roll) */
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', {
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + prop.TOKEN, // スクリプトプロパティにトークンは事前に追加しておく
},
'method': 'POST',
'payload': JSON.stringify({
"to": prop.DEBUGID, // スクリプトプロパティに送信先IDは事前に追加しておく
"messages": [
{
"type": "template",
"altText": "camera_roll",
"template": {
"type": "buttons",
"thumbnailImageUrl": "https://placehold.jp/640x480.jpg?text=camera_roll", // 画像のURL
"imageAspectRatio": "rectangle", // 画像のアスペクト比、「rectangle: 1.51:1」・「square: 1:1」、デフォルト値はrectangle
"imageSize": "cover", // 画像の表示形式
"imageBackgroundColor": "#FFFFFF", // 画像の背景色
"title": "メニュー",
"text": "以下より選択してください。",
"defaultAction": {
"type": "uri",
"label": "View detail",
"uri": "https://arukayies.com/"
},
"actions": [
{
"type": "cameraRoll",
"label": "カメラロールを起動します。"
}
]
}
}
],
"notificationDisabled": false // trueだとユーザーに通知されない
}),
});
}
TOKEN(アクセストークン)とDEBUGID(送信先のユーザーID)は、事前にスクリプトプロパティに設定しておく必要があります。
『カメラロールアクション』を送った結果


ユーザーが画像を選択して送信すると、imageメッセージとしてWebhookイベントが通知されます。イベントオブジェクトに含まれるmessage.idを使って、送信された画像データを取得できます。
画像データの取得方法について、詳しくはこちらの公式ドキュメントを参照してください。
他のアクションオブジェクトについても、以下の記事で解説しています。
LINE BOT開発で必須のアクションオブジェクト7種類(ポストバック、メッセージ、URI、日時選択、カメラ、カメラロール、位置情報)の機能と使い方をGoogle Apps Script (GAS) のサンプルを交えて徹底解説。それぞれの違いや最適な使い分けがわかります。

