第3部:AIを使った稼ぎ方

AI活用で集客と営業を自動化!LINEボットの作り方

  • このエントリーをはてなブックマークに追加
  • LINEで送る

本ページでは、AIがLINEメッセージに自動で返信してくれるLINEボットの開発方法を説明しています。

動いている様子を先に見たい人は以下からLINE友達登録して簡単な質問をしてみてください。

「趣味は?」などの世間話でも結構です。

動作確認用LINEボット(是非登録して質問を送ってみて下さい)

動作確認用LINEボットQRコード

LINEボット開発で使用するツールは以下の4つです。

アカウントをお持ちでない方は、上記リンクからそれぞれアカウント登録もできるので、登録してから進めてください。

また、手順でわからない点などがあれば、ぜひChatGPTに質問して解決策を聞いてみてください。

動画はこちら(LINE公式の作成〜アクセストークンの取得まで)

後編(AIプログラム作成)

手順1.LINE公式を作成

LINE公式は、通常のLINEと違い一人で複数のアカウントを登録することができます。 主にビジネス利用を目的として用意されたLINEのサービスの1つです。 以下の手順で、LINEボット用のLINE公式アカウントを作成してください。

  1. LINE Official Account Manager(https://www.lycbiz.com/jp)にアクセスしてログインしてください。
  2. ログイン後、コンソール画面から「アカウント作成」または「新規作成」ボタンをクリックします。
  3. アカウント名、アイコン、業種、説明文などの必要情報を入力し、公式アカウントを作成します。 各種プロフィール項目で入力内容に悩む箇所があれば、ChatGPTに聞いてみましょう。 ChatGPTに「ビジネス用のLINEのアカウント名を考えて」 のように質問したら候補を出してくれますよ。
  4. 作成完了後、管理画面でアカウントの情報や友だち追加用のQRコードなどが確認できます。

アカウント認証のリクエストは後日必要に応じてリクエストしてみてください。

以下のような画面が表示されたらOKです。

LINE公式アカウント作成画面例

手順2.Messaging APIチャネルの作成

LINE公式アカウントを作成したら、画面右上にある設定ボタンをおして、Messaging APIのページからMessaging APIを有効にして、プロバイダーの登録を済ませましょう。

プロバイダー名は何でも構いません、作成したLINE公式アカウント名と同じでもいいでしょう。

プロバイダを登録したら、LINE Developersコンソールから「チャネルアクセストークンの発行」をしていきます。

手順3.チャネルアクセストークンの取得

  1. LINE Developers(https://developers.line.biz/ja/)にアクセスしてログインしてください。
  2. 作成したチャネルの設定画面に移動し、【Messaging API設定】タブの下にある「チャネルアクセストークン」で「発行」ボタンをクリックし、生成されたアクセストークンをコピーしておきましょう。

チェック項目

  • LINE公式アカウントを作成
  • Messaging APIを有効にする
  • LINE Developersの画面からアクセストークンをコピーしておく

手順4.Google Apps Script(GAS)にプロジェクト作成

画像:Google Apps Script管理画面

ブラウザで https://script.google.com/homeにアクセスし、Googleアカウントでログインします。 「新規プロジェクト」をクリックして、新しいスクリプトプロジェクトを作成しましょう。

プロジェクトを作成するとコード.gsというサンプルファイルができているはずです。

このファイルを改良、編集してプログラムを完成させます。

コード.jsの編集画面。右側の編集領域がプログラムを記述する部分。

コード.jsの編集画面。右側の編集領域がプログラムを記述する部分。

手順5.自動応答プログラムの開発(AI)

AIプログラムを動作させるためには、Open AIのAPIキーが必要です。 ChatGPTの有料プランを契約している方でも、別途料金がかかりますが、非常に低コストで運用できます。

問い合わせ内容などにもよって前後はしますが、300文字程度のメッセージ送信で1円以下です。 あくまでも目安ですが、1000回メッセージを発信した場合のモデルごとの料金を並べておきます。

1ドル=140円換算で計算しています。

モデル1リクエスト($)1,000リクエスト($)約日本円(¥)
GPT-4(標準)$0.015$15.00約 ¥2,100
GPT-4 Turbo$0.007$7.00約 ¥980
GPT-4o mini$0.000135$0.135約 ¥19

GPT-4o miniモデルでは、1000回やり取りしても20円程度の料金ですから、非常に低コストです。 以下のページにAPIキーの取得方法をまとめていますので、こちらからご自身のAPIキーを発行してください。

本来は一番難しい、自動応答プログラム自体はAIに開発してもらいます。

以下のプロンプトをChat GPTに貼り付けてプログラムを開発させてください。

※ コード内の「OpenAIのAPIキー」と「ここにあなたのLINEのトークンをコピペ」をご自身のコードに書き換えた上で、ChatGPTにコピーしてください

Google Apps ScriptとLINE公式を連携して、私の代わりにLINEで受信したメッセージをOpen AIのAPIを利用して自動返信するGASコードを記述してください。

私のOpenAIのAPIキーとLINEのアクセストークンは以下です。
プログラムを修正しやすいように、各種設定は冒頭にまとめてください。
また、追加命令を複数行で柔軟に変更できるように``で括った状態で冒頭にまとめてほしいです。
練習用なので、開発のしやすさを考えてAPIキーやトークンなどはコードに直書きでお願いします。

リクエストのエンドポイントとして
https://api.openai.com/v1/chat/completions
を利用してMMLはgpt-4o-miniを指定してください

#Open AIのAPIキー
ここにあなたのAPIキーをコピペ
#LINEのアクセストークン
ここにあなたのLINEのトークンをコピペ

#APIに渡す追加命令
あなたは私の代わりに質問に答える優秀な私のクローンAIです。


作成されたコードをGASに貼り付けてください。

参考動画:GPTでAIプログラム作成


コードを保存したら、GASのデプロイボタンから、このプログラムを「ウェブアプリ」としてデプロイします。「アクセスできるユーザー」の欄は「全員」を設定してください。

✅ 初回デプロイ時のGoogle認証について(重要)

LINEボットをGAS(Google Apps Script)で動かすために、初回のデプロイ時にはGoogleから以下のようなセキュリティ警告画面が表示されることがあります。

これはGASがまだGoogleに「信頼されたアプリ」として登録されていないために表示されるものです。 「安全なページに戻る」を押してしまうと先に進めませんので、「詳細」→「(プロジェクト名)に移動」 をクリックして進めてください。

手順6.Webhook URLの設定

GASのデプロイが完了すると表示されるURLをLINE DevelopersのWebhook URLに設定してください。
LINE Developersの【Messaging API設定】タブにある「Webhook URL」に、コピーしたGASのURLを貼り付け、「更新」ボタンをクリックします。

画像:webhook URLの設定

続いて、応答設定も変更してください。「Webhookの利用」をオンに切り替えます。チャットも有効にしておくと便利です。

手順7.LINE公式の応答設定

LINE公式側で、ユーザーからのメッセージに対してGASが応答できるように設定を変更します。

画像を参考に、チャットとwebhookの設定を有効にしてください。

これで、LINEボットがあなたの代わりに自動で応答を開始します。

手順8.動作確認

最後に、作成したLINEボットが正しく動作するかを確認します。

  1. LINE Official Account Managerで表示されるQRコードをスマートフォンで読み取り、ボットを友だち追加します。
  2. トーク画面でメッセージを送信し、AIが自動で応答するかを確認します。

以上で、LINEボットの開発は完了です。

AIに機能を追加しよう

今作ったLINEボットは、ただAIが反応するだけで機能としては何もありません。

AIに追加命令を指示して、あなただけのオリジナルAIを作ってみましょう。

GASに設置したAIプログラムコードに
あなたは私の代わりに質問に答える優秀な私のクローンAIです。
のような一文があるはずです。

そこに、追加指示を設定することで、AIに個性を与えて行きましょう。
例えば以下のようにプロフィール情報を追加入力すれば、AIに人格を与えることができます。


プロフィールの埋め込みには以下のAI人格メーカーを使うと便利です。

自動相談窓口LINEの作り方

スプレッドシートなどに想定質問と回答をまとめて読み込ませることで、AIによる自動顧客サポートなども実現できます。

プロンプト例

const ADDITIONAL_INSTRUCTIONS = `
あなたは私の代わりに質問に答える優秀な私のクローンAIです。

以下のスプレッドシート情報を参考に、LINEボットの開発をサポートしてください。
https://docs.google.com/spreadsheets/d/1osCeP9dFyA2Bg5cMkXylHcwv5CyvrPHU7AsU8GM_upU/edit?gid=0#gid=0

`;

参考スプレッドシート:https://docs.google.com/spreadsheets/d/1osCeP9dFyA2Bg5cMkXylHcwv5CyvrPHU7AsU8GM_upU/edit?gid=0#gid=0

※ スプレッドシートの共有設定で、リンクを知っている人全員が閲覧可能な状態にしておいてください。

その他、例えば法律の知識(六法全書)などを埋め込めば、お手軽な顧問弁護士として活躍させることもできるし、占いや相性診断などのサービスも展開できます!

動かないときは?

ChatGPTのコード生成は非常に優秀ですが、それでも時には不十分なコードが生成されるケースもあります。
再度GPTにプロンプトを貼り付けて、コードを再生成させたりすることで解決する場合もあります。

GPTと対話して問題を解決するのが一番ですが、今回は上田が実際に動作するコードを用意しました。
安定動作のためにモデルはgpt-4を指定しています。

AI LINEボットプログラムコード

/***************************************
 * 【設定項目】
 ***************************************/
var OPENAI_API_KEY = 'OPEN AIのAPIキーをコピペ';
var LINE_ACCESS_TOKEN = 'LINEのアクセストークンをコピペ';



var OPENAI_API_URL = 'https://api.openai.com/v1/chat/completions';
var LINE_REPLY_API_URL = 'https://api.line.me/v2/bot/message/reply';

// APIに渡す追加命令(システムプロンプト)
// バッククォートで括った複数行の自然文として設定しています。
var ADDITIONAL_INSTRUCTIONS = `
あなたは私の代わりに質問に答える優秀な私のクローンAIです。
私のプロフィールは以下です。
---プロフィールここから---
あなたのプロフィールをここにコピペしよう
---プロフィールここまで---
`;


/***************************************
 * 【LINE webhook エントリポイント】
 ***************************************/
function doPost(e) {
  try {
    // LINEからのPOSTデータをJSONで取得
    var data = JSON.parse(e.postData.contents);
    if (!data.events || data.events.length === 0) {
      return ContentService.createTextOutput(JSON.stringify({status: 'no events'}));
    }
    
    // 複数イベントがある場合は、最初のイベントのみ処理
    var event = data.events[0];
    var replyToken = event.replyToken;
    var userMessage = event.message.text;
    
    // OpenAI APIに問い合わせて回答を取得
    var replyMessage = callOpenAI(userMessage);
    
    // 取得した回答をLINEへ返信
    replyToLine(replyToken, replyMessage);
    
    return ContentService.createTextOutput(JSON.stringify({status: 'ok'}));
  } catch (err) {
    console.error(err);
    return ContentService.createTextOutput(JSON.stringify({status: 'error', message: err}));
  }
}


/***************************************
 * 【OpenAI API 呼び出し】
 ***************************************/
function callOpenAI(userMessage) {
  var payload = {
    model: 'gpt-4',
    messages: [
      { role: 'system', content: ADDITIONAL_INSTRUCTIONS },
      { role: 'user', content: userMessage }
    ]
  };

  var options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'Authorization': 'Bearer ' + OPENAI_API_KEY
    },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  var response = UrlFetchApp.fetch(OPENAI_API_URL, options);
  var responseData = JSON.parse(response.getContentText());

  if (response.getResponseCode() === 200 && responseData.choices && responseData.choices.length > 0) {
    return responseData.choices[0].message.content;
  } else {
    console.error('OpenAI API error:', responseData);
    return 'エラーが発生しました。';
  }
}


/***************************************
 * 【LINE 返信送信】
 ***************************************/
function replyToLine(replyToken, message) {
  var payload = {
    replyToken: replyToken,
    messages: [
      {
        type: 'text',
        text: message
      }
    ]
  };

  var options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN
    },
    payload: JSON.stringify(payload)
  };

  UrlFetchApp.fetch(LINE_REPLY_API_URL, options);
}

本記事についてのお問い合わせはこちらまで

本記事に関する質問や疑問点などがございましたら、下記のサポート窓口までお問い合わせ頂ければと思います。

お問い合わせの前に、一度公開掲示板で同様の質問があるかも確認してみて下さい。

メールでのお問い合わせ

メールアドレス:support@lucky-mine.com
予備アドレス:luckymine23@gmail.com

LINEでのお問い合わせ

URL:https://abe-labo.biz/r/line_sougou/
上記リンクをクリックするか以下のQRコードを読み取ってLINEからメッセージを下さい。

コメントを残す