APIキーの生成

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設定はできた

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です