目次
Contents
ChatGPT × GAS × LINEで自動通知を送る方法【AIでメッセージ自動配信】
「ChatGPTで作った文章をLINEに自動で送れたら便利なのに…」 そんな方におすすめなのが、ChatGPT × Google Apps Script(GAS) × LINE Messaging API の連携です。
この記事では、ChatGPTが生成したメッセージをGAS経由でLINEに自動送信する方法を、初心者でもできるようにステップ形式で解説します。
全体の流れ
- LINE公式アカウントを作成してトークンを取得
- ChatGPT(OpenAI)のAPIキーを取得
- GASでChatGPT APIを呼び出し → メッセージ生成
- 生成したメッセージをLINEへ送信
- トリガー設定で定期実行(自動化)
① LINE公式アカウントでトークンを取得
まず、LINE Developers にアクセスして、「プロバイダー」と「Messaging APIチャネル」を作成します。
- チャネルアクセストークン(長期) … 後でGASで使用します
- Botの応答設定 … 「応答メッセージ」をOFFにしておきましょう(自動メッセージとの競合を防ぐため)
作成後、チャネル基本設定画面から「チャネルアクセストークン(長期)」をコピーしておきます。
② ChatGPTのAPIキーを取得
次に、OpenAIの公式サイトでAPIキーを取得します。 OpenAI APIキー発行ページ にアクセスし、「+ Create new secret key」をクリックしてキーを発行します。
このキーは、後でGASの「スクリプトプロパティ」に保存して安全に使います。
③ GASでスクリプトを作成
Googleスプレッドシートを開き、上部メニューから「拡張機能 → Apps Script」を開きます。 以下のコードを貼り付けてください。
function sendChatGPTtoLINE() {
const OPENAI_KEY = PropertiesService.getScriptProperties().getProperty("OPENAI_API_KEY");
const LINE_TOKEN = PropertiesService.getScriptProperties().getProperty("LINE_TOKEN");
const USER_ID = PropertiesService.getScriptProperties().getProperty("LINE_USER_ID");
// ChatGPTへの質問内容
const prompt = "今日の天気を踏まえて、元気が出る朝のメッセージを作って";
// ChatGPT API呼び出し
const url = "https://api.openai.com/v1/chat/completions";
const payload = {
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: prompt }],
temperature: 0.7
};
const options = {
method: "post",
headers: { Authorization: "Bearer " + OPENAI_KEY },
contentType: "application/json",
payload: JSON.stringify(payload)
};
const response = UrlFetchApp.fetch(url, options);
const result = JSON.parse(response.getContentText());
const message = result.choices[0].message.content.trim();
// LINE通知
const lineUrl = "https://api.line.me/v2/bot/message/push";
const linePayload = {
to: USER_ID, // 自分のユーザーIDを指定
messages: [{ type: "text", text: message }]
};
UrlFetchApp.fetch(lineUrl, {
method: "post",
headers: { "Authorization": "Bearer " + LINE_TOKEN },
contentType: "application/json",
payload: JSON.stringify(linePayload)
});
Logger.log("送信完了:" + message);
}
ポイント:
- LINE_TOKEN: Messaging APIの「チャネルアクセストークン」
- OPENAI_API_KEY: OpenAIのAPIキー
- LINE_USER_ID: LINE公式アカウントで友達登録後、「ユーザーID取得ツール」などで取得可能
④ スクリプトプロパティを設定
GASのメニューから「設定 → プロジェクトのプロパティ → スクリプトのプロパティ」を開き、以下を登録します。
| キー | 値 |
|---|---|
| OPENAI_API_KEY | (取得したChatGPT APIキー) |
| LINE_TOKEN | (LINEチャネルアクセストークン) |
| LINE_USER_ID | (自分のユーザーID) |
⑤ テスト実行とトリガー設定
- 「関数を選択 → sendChatGPTtoLINE → ▶実行」
- 初回のみ「権限の承認」→「続行」→「許可」
- LINEにChatGPTからのメッセージが届けば成功!
- 「トリガー」→「関数を選択:sendChatGPTtoLINE」→「時間主導型」→「毎朝8時」などを設定
これで、毎朝ChatGPTが自動でメッセージを生成し、LINEに配信してくれるようになります。
⑥ 応用アイデア(業務利用に発展)
- 毎朝「今日の天気+元気メッセージ」を自動送信
- ChatGPTが日報を自動生成 → LINEで共有
- スプレッドシートの売上データを要約 → LINEに自動報告
- Googleフォームの新規回答をChatGPTが要約 → LINE通知
トラブル対策
- 通知が届かない: LINE_USER_ID または アクセストークンを再確認。
- ChatGPTエラー: API使用制限やJSON形式エラー。
Logger.log(result)で内容を確認。 - トリガーが動かない: 「時間主導型」に設定し、スクリプト承認を再度行う。
まとめ
ChatGPT × GAS × LINEを組み合わせることで、 「AIが考え、GASが動かし、LINEが届ける」自動化の仕組みを簡単に作ることができます。
