GAS の Webhook エンドポイントを利用し、ローカルの画像を LINE に送信 できるようにする
✅ GAS を利用し、ローカル画像を LINE Bot に送信できるように修正
✅ 画像を Base64 エンコードし、GAS に POST で送信
✅ GAS 側で画像を受け取り、LINE API で送信
✅ LINE Notify を使わず、LINE Bot で画像を送信可能に!
GASでは画像は保持されるのか? またセキュリティの問題などはあるか?
で調べる
GAS(Google Apps Script)自体は画像データを保存しません。
画像を LINE Bot に送信するだけであれば、GAS での保持は発生しません。
ただし、Base64 エンコードした画像を HTTP リクエストとして送信 するため、
Google の内部ログには一時的にデータが記録される可能性がありますが、
GAS で doPost(e) を処理する際に 明示的にデータを保存しない限り、GAS 側には一切画像は残りません
ということ
リスク1】GAS の Webhook URL が外部に漏れると誰でも画像送信できる
GAS の Webhook URL (https://script.google.com/macros/s/XXXXXX/exec) が漏れると、誰でも画像を送信できてしまう
➡ 対策:リクエストの認証を行う
✅ 対策1: シークレットキーを使って認証
リスク 対策
GAS の Webhook URL が外部に漏れる API キーで認証を追加
GAS のログに画像データが保存される ログに画像データを記録しない
GAS の公開範囲の設定ミス 「自分のみ」または「特定のGoogleアカウント」に制限
✅ GAS は画像を保存しないのでセキュリティ的には問題なし
✅ API キーによる認証を追加すれば、不正利用も防げる
✅ ログに画像データを残さないように修正すれば安心
秘密の API_KEY には LINE Bot のシークレットキーを使って良いか?
🔴 いいえ、LINE Bot の channel_secret を API_KEY に使うのは推奨されません。
➡ 理由:LINE Bot の channel_secret は、署名検証や API 呼び出しの認証に使用されるため、外部に渡さない方が良い。
✅ API_KEY は独自のランダムなシークレットキーを設定
🔹 API_KEY は LINE Bot の channel_secret とは別に、GAS 専用の認証キーとして作成する のがベスト。
🔹 Python 側(line_bot_sender.py)と GAS 側(コード.gs)で一致するように設定すればOK。
🔹 これは Webhook URL が漏洩しても、不正アクセスを防ぐ
このため自分でキーの値を作成すればOK
まずはApiキーを生成する
不正使用防止のためAPIキーを設定する
リスク 対策
GAS の Webhook URL が外部に漏れる API キーで認証を追加
GAS のログに画像データが保存される ログに画像データを記録しない
GAS の公開範囲の設定ミス 「自分のみ」または「特定のGoogleアカウント」に制限
✅ GAS は画像を保存しないのでセキュリティ的には問題なし
✅ API キーによる認証を追加すれば、不正利用も防げる
✅ ログに画像データを残さないように修正すれば安心
これで、GAS を経由して 安全に画像を LINE Bot に送信できる ようになります! 🚀✨
✅ API_KEY は独自のランダムなシークレットキーを設定
🔹 API_KEY は LINE Bot の channel_secret とは別に、GAS 専用の認証キーとして作成する のがベスト。
🔹 Python 側(line_bot_sender.py)と GAS 側(コード.gs)で一致するように設定すればOK。
🔹 これは Webhook URL が漏洩しても、不正アクセスを防ぐための対策 になります。
API_KEY は ランダムな英数字(32文字程度) にするのが理想
まずはファイルの作成
touch create_api_key.py
内容は
import secrets
api_key = secrets.token_hex(32) # 32バイト(64文字)のランダムなキーを生成
print(api_key)
実行するとキーが生成される
この値を
config.jsonへ追加する
{
“token”: “”,
“image_file_path”: “runs/detect”,
“line_bot_channel_access_token”: “”,
“channel_secret”: “”,
“line_bot_user_id”: “”,
“api_key”: “”
}
[・shell]
次にGASで
PropertiesService を使って APIキー を設定
APIキーをスクリプトプロパティに設定するには
1. Google Apps Script (GAS) のエディタを開く
2. [ファイル] → [プロジェクトのプロパティ] を選択
3. [スクリプトプロパティ] タブを開く
4. 新しいプロパティを追加
* キー名: API_KEY
* 値: your_random_api_key_xxxxxxx
5. 保存ボタンを押す
これでAPI設定はできた