上司から急に「LINEとAI、連携させといて」と頼まれて、何から手をつければいいか途方に暮れていませんか?
公式ドキュメントは情報が多すぎてどこから読めばいいかわからないし、世の中の解説記事はビジネス的なメリットばかりで、具体的なコードや設定画面の情報がなくて困っているのではないでしょうか。
でも、ご安心ください。
この記事では、あなたが今まさに知りたい「どうすれば、とにかく動くプロトタイプが作れるのか?」という問いに、一直線でお答えします。複数のサイトを渡り歩く必要はありません。この記事を上から順に実行するだけで、専門知識が少なくてもLINE公式アカウントとChatGPTを連携したプロトタイプを作れます。
なお、この記事で扱う「LINE AI アカウント連携」は、LINEアプリ内のAgent iを操作する話ではなく、LINE公式アカウントのMessaging APIとOpenAI APIを連携させる開発手順です。LINE AIやAgent iとの違いを先に整理したい方は、LINE AIとChatGPTの違いも参考にしてください。
本文は2026年5月時点で確認できるLINE Developers、OpenAI API、Google Apps Scriptの公式情報をもとにしています。画面名、APIの推奨方式、モデル名、料金、利用条件は変更される可能性があるため、実際に使う前に各公式ページも確認してください。
著者情報
この記事を書いた人:鈴木 翔太 (Suzuki Shota)
API連携専門のテクニカルライター / フリーランス開発者。チャットボット開発やサーバーレスアーキテクチャを専門とし、LINE公式アカウント、Webhook、Google Apps Script、生成AI APIを使ったプロトタイプ開発を中心に解説しています。読者のあなたへ
急な開発依頼、お疲れ様です。僕も「これ、やっといて」と無茶振りされた経験は数え切れません。この記事では、難しい理屈は後回しにして、とにかく「動くもの」を最速で作るための最短ルートを解説します。一緒に一歩ずつ進めましょう。
まずはゴールまで一直線!連携の全体像と5つのステップ
本格的な作業に入る前に、まず全体像を掴んでおきましょう。これから行う連携作業は、一見複雑に見えますが、仕組み自体はシンプルです。
全体の流れは、「LINEへのメッセージを、中間役のプログラムが受け取り、OpenAI APIに問い合わせて、その返事をLINEに送り返す」という伝言ゲームのようなものです。
この伝言ゲームは、次の5ステップで作れます。
- LINE側の準備: メッセージの送受信口となる「Messaging API」を設定します。
- LINE側の準備(続き): 認証に必要なキーを取得します。
- OpenAI側の準備: ChatGPT相当のAIモデルをAPIから使うための「APIキー」を取得します。
- 頭脳部分を作る: 伝言ゲームの中間役となるプログラムを「Google Apps Script」に実装します。
- すべてを繋ぐ: LINEとプログラムを「Webhook」で接続し、動作確認します。
この流れを図にすると、以下のようになります。

ここで大切なのは、LINE公式アカウント、Google Apps Script、OpenAI APIの役割を分けて理解することです。LINE公式アカウントはユーザーとの入口、Google Apps Scriptは中継サーバー、OpenAI APIは返信文を作る頭脳と考えると迷いにくくなります。
ステップ1〜2:LINE側の準備(Messaging APIのセットアップ)
それでは、具体的な作業に入りましょう。まずはメッセージの玄関口となるLINE側の設定です。
-
LINE Developersコンソールにログイン
LINE Developersコンソールにアクセスし、お持ちのLINEアカウントでログインしてください。 -
プロバイダーの作成
初めて利用する場合は、「プロバイダー」を作成します。これはサービス提供者の単位です。会社名、屋号、個人名など、管理しやすい名前を入力してください。 -
チャネルの作成
プロバイダーを選択し、「チャネルを作成する」から「Messaging API」を選択します。 -
必要事項の入力
チャネル名(例: AIテストボット)、チャネル説明、業種などを入力していきます。アイコンは後からでも設定可能です。 -
重要:2つのキーをメモする
チャネルが作成されたら、「チャネル基本設定」タブと「Messaging API設定」タブから、以下の2つの情報を取得します。この2つは後ほどプログラムに設定する重要な情報なので、必ずテキストエディタなどにコピーして保存しておいてください。- チャネルシークレット: 「チャネル基本設定」タブにあります。本番利用時の署名検証で重要になります。
- チャネルアクセストークン: 「Messaging API設定」タブで発行します。LINEへ返信メッセージを送る時に使います。
これでLINE側の準備は一旦完了です。なお、この記事のサンプルコードでは、初心者が動作確認しやすいように署名検証を省略しています。公開運用・本番利用では、Webhook署名の検証を必ず実装してください。
ステップ3:OpenAI側の準備(APIキーの取得)
次に、AIの頭脳をプログラムから利用するための「通行証」となるAPIキーを取得します。
-
OpenAIプラットフォームにログイン
OpenAIのAPIプラットフォームにアクセスし、アカウントを作成またはログインします。 -
APIキーの管理画面へ移動
ログイン後、APIキーの管理画面を開きます。画面名は変更される可能性がありますが、「API keys」「Keys」などの項目を探してください。 -
新しいAPIキーを作成
「Create new secret key」または同等のボタンから新しいキーを作成します。キーの名前は「LINE-Bot-Test」など、用途が分かる名前にしておきましょう。 -
重要:APIキーをコピーして保存
キーが生成されると、一度だけ画面に表示される場合があります。この画面を閉じると再表示できないことがあるため、必ずコピーして、先ほどのLINEのキーと一緒に保存してください。
APIキーは、第三者に知られると不正利用される危険があります。記事、SNS、GitHub、スクリーンショットなどに公開しないでください。
ステップ4:頭脳部分を作る(Google Apps Scriptのコード実装)
いよいよ、LINEとOpenAI APIをつなぐ「中間役」のプログラムを作成します。今回はサーバー契約不要で手軽に試せる「Google Apps Script (GAS)」を使います。
-
Google Apps Scriptプロジェクトを作成
Google Apps Scriptのページにアクセスし、「新しいプロジェクト」を開始します。 -
コードをコピー&ペースト
元々書かれているコードをすべて削除し、以下のコードをそのままコピーして貼り付けてください。今回は、OpenAIの新規開発で使いやすいResponses API形式に寄せたサンプルにしています。
// ======================================
// 初回だけ実行:APIキーをスクリプトプロパティに保存
// ======================================
function setPropertiesOnce() {
PropertiesService.getScriptProperties().setProperties({
LINE_CHANNEL_ACCESS_TOKEN: 'ここにLINEのチャネルアクセストークンを入れてください',
OPENAI_API_KEY: 'ここにOpenAI APIキーを入れてください',
OPENAI_MODEL: 'gpt-4.1-mini'
});
}
// ======================================
// LINEからWebhookでPOSTされた時に動く関数
// ======================================
function doPost(e) {
try {
const body = JSON.parse(e.postData.contents);
const event = body.events && body.events[0];
if (!event || !event.replyToken || !event.message || event.message.type !== 'text') {
return ContentService.createTextOutput('OK');
}
const replyToken = event.replyToken;
const userMessage = event.message.text;
const aiReply = getOpenAIReply(userMessage);
replyToLINE(replyToken, aiReply);
return ContentService.createTextOutput('OK');
} catch (error) {
console.error(error);
return ContentService.createTextOutput('ERROR: ' + error.message);
}
}
// ======================================
// OpenAI APIに問い合わせる関数
// ======================================
function getOpenAIReply(userMessage) {
const props = PropertiesService.getScriptProperties();
const apiKey = props.getProperty('OPENAI_API_KEY');
const model = props.getProperty('OPENAI_MODEL') || 'gpt-4.1-mini';
const url = 'https://api.openai.com/v1/responses';
const payload = {
model: model,
instructions: 'あなたはLINE公式アカウントで返信する親切な日本語アシスタントです。短く、わかりやすく回答してください。',
input: userMessage
};
const options = {
method: 'post',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json'
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(url, options);
const statusCode = response.getResponseCode();
const responseText = response.getContentText();
if (statusCode < 200 || statusCode >= 300) {
return 'OpenAI APIでエラーが発生しました。ステータス: ' + statusCode + ' / 内容: ' + responseText;
}
const data = JSON.parse(responseText);
if (data.output_text) {
return data.output_text.trim();
}
return 'AIからの返信を取得できませんでした。レスポンス: ' + responseText;
}
// ======================================
// LINEに返信する関数
// ======================================
function replyToLINE(replyToken, text) {
const props = PropertiesService.getScriptProperties();
const channelAccessToken = props.getProperty('LINE_CHANNEL_ACCESS_TOKEN');
const url = 'https://api.line.me/v2/bot/message/reply';
const payload = {
replyToken: replyToken,
messages: [
{
type: 'text',
text: text
}
]
};
const options = {
method: 'post',
headers: {
Authorization: 'Bearer ' + channelAccessToken,
'Content-Type': 'application/json'
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
UrlFetchApp.fetch(url, options);
}
-
2つのキーを書き換える
コード上部のsetPropertiesOnce()内にある、次の2箇所を書き換えてください。LINE_CHANNEL_ACCESS_TOKENに、LINEのチャネルアクセストークンを貼り付けます。OPENAI_API_KEYに、OpenAIのAPIキーを貼り付けます。
-
setPropertiesOnceを1回だけ実行する
Google Apps Scriptの関数選択でsetPropertiesOnceを選び、実行してください。初回実行時は権限承認が求められます。 -
モデル名を必要に応じて変更する
サンプルではgpt-4.1-miniを入れていますが、実際に利用できるモデル名はOpenAIの管理画面や公式ドキュメントで確認してください。利用できない場合は、利用可能なモデル名に変更します。
このサンプルは、まず動作確認するための最小構成です。本番運用では、署名検証、エラーログ管理、利用料金の上限設定、個人情報を送らない設計を追加してください。
ステップ5:すべてを繋ぐ(Webhook設定とデプロイ)
最後のステップです。作成したプログラムをインターネット上に公開し、LINEからのメッセージが届くように道をつなぎます。
-
プログラムをデプロイ
Google Apps Scriptの画面右上にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。 -
ウェブアプリとして公開
種類の選択で「ウェブアプリ」を選びます。実行ユーザーは通常、自分のアカウントを選択します。アクセスできるユーザーは、LINEからアクセスできるように「全員」または同等の公開設定を選びます。 -
Webhook URLをコピー
デプロイが完了すると、「ウェブアプリ」のURLが表示されます。これがWebhook URLです。コピーしてください。 -
LINEにWebhook URLを設定
再びLINE Developersコンソールに戻り、作成したチャネルの「Messaging API設定」タブを開きます。「Webhook URL」に、先ほどコピーしたURLを貼り付け、「更新」または保存を行います。 -
接続をテスト
URLを更新すると表示される「検証」ボタンを押してください。「成功」と表示されれば、接続は完了です。 -
自動応答を無効化
最後に、LINE公式アカウント側の「応答メッセージ」を無効にしてください。これをしないと、自作のボットではなく、LINE公式アカウント側の標準応答が返る場合があります。
お疲れ様でした。これで基本設定は完了です。作成したLINE公式アカウントをスマートフォンで友だち追加し、何かメッセージを送ってみてください。AIからの返信が届けば成功です。
LINE AI・Agent i連携と今回のAPI連携は何が違う?
ここで一度、言葉を整理しておきましょう。
LINEアプリ内の「LINE AI」「Agent i」は、LINEヤフー側が提供するAI機能です。一方、この記事で作るものは、あなたが管理するLINE公式アカウントに、OpenAI APIを接続する自作チャットボットです。
| 項目 | LINE AI / Agent i | 今回のAPI連携 |
|---|---|---|
| 主な利用者 | 一般ユーザー | 開発者・店舗・企業担当者 |
| 使う場所 | LINEアプリ内 | LINE公式アカウント |
| 設定場所 | LINEアプリ設定 | LINE Developers / GAS / OpenAI |
| 目的 | 返信補助・相談・情報収集 | 自作ボットや業務用試作 |
そのため、LINE AIの表示・非表示やAgent iの設定で困っている場合は、本記事ではなくLINEアプリ側の設定記事を確認した方が早いです。ChatGPTとの違いを整理したい場合は、LINE AIとChatGPTの違いを確認してください。
また、店舗側のAI返信が動かない場合は、今回の自作API連携ではなくLINE公式アカウント側の設定が原因のこともあります。店舗向けの確認は、LINE AIエラー解決の記事も参考になります。
【動かない時】9割が解決するトラブルシューティング集
「手順通りやったのに、メッセージを送っても何も返ってこない…」一番焦る瞬間ですよね。でも、こういう時の原因はだいたい決まったいくつかのポイントに集約されます。慌てずに、一つずつ確認していきましょう。
✍️ 専門家の経験からの一言アドバイス
【結論】: エラーが出た時は、まず「どこで問題が起きているか」を切り分けるのが解決への最短ルートです。
なぜなら、多くの人が「動かない!」と全体を一度に見てしまいがちですが、問題は「LINE→GAS」の通信か、「GAS→OpenAI」の通信か、あるいはGASのコード自体かのいずれかに存在します。この「切り分ける」という視点を持つだけで、今後の開発でも必ず役に立ちます。
✅ チェックリスト
-
GASのキーは正しいか?
LINE_CHANNEL_ACCESS_TOKENとOPENAI_API_KEYをもう一度見直してください。コピーする際に前後に余計なスペースが入っていませんか?setPropertiesOnce()を実行し忘れていないかも確認してください。
-
Webhook URLは正しく設定されているか?
- GASでデプロイしたURLを、LINE Developersコンソールに正確にコピー&ペーストできていますか?
- 【重要】 コードを修正した後は、必ず新しいバージョンとして再デプロイしてください。これを忘れると、変更がWebhookに反映されません。
-
LINEの応答設定は「無効」になっているか?
- LINE公式アカウントの「応答メッセージ」が有効のままだと、標準応答が優先される場合があります。
-
GASのデプロイ設定は外部からアクセスできる状態か?
- アクセスできるユーザーが限定されていると、LINEプラットフォームからのアクセスを受け取れません。
-
OpenAI APIの利用上限や課金設定に問題はないか?
- APIキーが正しくても、利用上限、支払い設定、モデルの利用権限によってエラーになる場合があります。
この5点を確認すれば、プロトタイプ段階の多くの問題は切り分けられます。
本番運用前に必ず確認したい注意点
ここまでの手順は、あくまで「動くプロトタイプ」を作るための最短ルートです。本番運用する場合は、次の点を必ず確認してください。
- Webhook署名を検証する
- APIキーをコードや公開リポジトリに直接書かない
- 個人情報・機密情報をOpenAI APIへ送る設計にしない
- 利用料金の上限やアラートを設定する
- ユーザーにAI応答であることを明示する
- 誤回答時の問い合わせ導線を用意する
特に、顧客対応や業務利用では「動くこと」だけでなく、ログ、個人情報、API費用、誤回答時の責任範囲まで考える必要があります。CopilotやGeminiなど他のAIサービスとの違いも含めて整理したい場合は、Copilot比較やGemini性能比較も参考にしてください。
まとめ:LINE公式アカウントとChatGPT連携の第一歩です
この記事の手順を最後までやり遂げたあなた、本当にお疲れ様でした。これで、あなたの手元にはLINE公式アカウントとOpenAI APIが連携して動く、AIチャットボットのプロトタイプが完成しています。
「何から手をつければ…」という不安が、「動いた!思ったより作れそう」という実感に変わったのではないでしょうか。
今回の基本形を応用すれば、「自社製品に関する質問に答える専門ボット」や「特定のキャラクターになりきって応答するボット」に改造していくことも可能です。
ただし、本番利用ではWebhook署名検証、APIキー管理、個人情報の扱い、利用料金の管理を必ず確認してください。プロトタイプで動作を掴み、安全面を整えてから実運用へ進むのが安心です。
トラブル解決!LINE AIアカウント連携に関するよくある質問 (FAQ)
LINE公式アカウントとOpenAI APIの連携で、初心者がつまずきやすいポイントをQ&A形式でまとめました。
LINE AI アカウント連携とは何ですか?
この記事では、LINE公式アカウントとOpenAI APIを連携させる開発手順を指しています。
LINEアプリ内のAgent iやLINE AIの表示設定とは別です。LINE公式アカウントのMessaging API、Google Apps Script、OpenAI APIを使って、自作のAIチャットボットを作る流れです。
無料で試せますか?
一部は無料で試せる場合がありますが、OpenAI APIやLINE公式アカウントの利用条件によって費用が発生する可能性があります。
APIは利用量に応じて料金が発生することがあります。テスト前にOpenAI側の課金設定、利用上限、LINE公式アカウント側のプラン条件を確認してください。
Google Apps Scriptだけで本番運用できますか?
小規模な検証には向いていますが、本番運用では慎重に判断してください。
アクセス数、実行時間、ログ管理、エラー監視、セキュリティ要件によっては、Cloud Runや通常のサーバー環境を検討した方がよい場合があります。
返信が返ってこない時はどこを見ればいいですか?
まずWebhook URL、GASのデプロイ、APIキー、LINEの応答設定を確認してください。
特に多いのは、コード修正後に再デプロイしていないケースです。GASの実行ログも確認し、LINEからGASに届いているのか、GASからOpenAI APIへ送れているのかを切り分けましょう。
顧客情報をAIに送っても大丈夫ですか?
原則として、顧客情報や個人情報をそのままAIへ送る設計は避けた方が安全です。
本番利用では、個人情報を伏せる、社内ルールを確認する、利用規約やAPIのデータ扱いを確認するなどの対応が必要です。プロトタイプ段階でも、実在の個人情報は使わないでください。



コメント