【OPEN AI APIとLINEを連携ボット】定期的にメッセージが送信できるように改造してみた

※今回もほぼ、chatGPTが「関西弁で」書いてます。

先日YouTubeを見ててんけど、オープンAIのAPIとLINEを連携させる動画見つけてん。たしか「AIチャット君」っていう名前のやつが、ええ感じにユーザ数集めてAPI使えるねんて、アピールしてたわ。それが自分でできたら、最高やんな?

そんで、その動画で紹介されてたノートのコードをGoogle Apps Scriptにペーストして、連携させてみたんや。なかなか快適で、せっかくGASのトリガーがあるから、毎日とか朝晩2回とか定期的なメッセージ送れたらええやんかって思って、チャットGPTにコード改造してもらったわ。

これはnoteで掲載されてたコードを、定期的にメッセージ入れられるように改造したものやで。例えるならば、目標とか入れてみるとええんちゃうかな?
12月までに10キロ痩せるとか、英語の成績20点伸ばすとか、アファメーション的なもんも使えるやろ?

あの「コスプレアイドルと絶対結婚するブヒヒ」みたいなんも面白いかもしれへんで。子供さんにも使えるから

「毎日呼んで欲しいおかあさんからの10のメッセージ」とか、設定しておくとええかもしれへんな。

自分の目標や願望を毎日、自動で送ってもらうんや。それやったら、ちょっと気合い入るんちゃうかな?

それで、コードは以下になるで。LINEとオープンAI APIの連携方法も書いてあるから、参考にしてみてや。

[コードの部分]

const LINE_ACCESS_TOKEN = '●●';
const OPENAI_APIKEY = "▲▲";

function doPost(e) {
  const event = JSON.parse(e.postData.contents).events[0];

  const replyToken = event.replyToken;
  let userMessage = event.message.text;

  if (userMessage === undefined) {
    // テキスト以外
    userMessage = '???';
  }

  const prompt = userMessage;
  const requestOptions = {
    "method": "post",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer "+ OPENAI_APIKEY
    },
    "payload": JSON.stringify({
      "model": "gpt-4",
      "messages": [
         {"role": "user", "content": prompt}]
    })
  }
  const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);

  const responseText = response.getContentText();
  const json = JSON.parse(responseText);
  const text = json['choices'][0]['message']['content'].trim();

  sendMessage(replyToken, text);
}

function sendMessage(replyToken, text) {
  const url = 'https://api.line.me/v2/bot/message/reply';

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': [{
        'type': 'text',
        'text': text,
      }]
    })
  });
}

function sendDailyMessage() {
  const userId = '■■'; // 実際のLINEユーザーIDに置き換えてください
  const text = '「ここに定期的に届けるメッセージを書く」例:(座右の銘)石の上にも桃栗三年柿八年。目標:今年こそは「●●ちゃん」と結婚する。ブヒヒ。';

  const url = 'https://api.line.me/v2/bot/message/push';

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'to': userId,
      'messages': [{
        'type': 'text',
        'text': text,
      }]
    })
  });
}

function setDailyTrigger() {
  ScriptApp.newTrigger('sendDailyMessage')
    .timeBased()
    .atHour(5)
    .everyDays(1)
    .create();
}


せやから、あなたも是非試してみて。どないやろか、思った以上に便利やと思うわ。話題のAPIとLINE連携、ぜひお試しあれ!

コードではgpt-4を使ってるので「まだない」「安く済ませたい」方は
"model": "gpt-3.5-turbo",に変更してくださいね。

以下、導入方法

以下の手順に従って、LINE、OpenAI、およびGoogle Apps Scriptを設定し、上記のコードを導入してください。

【LINE】

  • ステップ1:

  • LINE Developersで新しいプロバイダとチャネルを作成

  • 1.1. LINE Developersにログインし、プロバイダとチャネルを作成します

  • 1.2. チャネルの種類は「Messaging API」を選択してください。

  • ステップ2:

  • LINEアクセストークンの取得

  • 2.1. 作成したチャネルの「Messaging API」タブを開きます。

  • 2.2. 「Channel access token」セクションで「Issue」ボタンをクリックして、アクセストークンを取得します。

  • 2.3. 上記のコード内の「●●」を取得したアクセストークンに置き換えてください。

【OpenAI】

  • ステップ3:

  • OpenAI APIキーの取得

  • 3.1. OpenAIのウェブサイトにログインし、APIキーを取得します。

  • 3.2. 上記のコード内の「▲▲」を取得したAPIキーに置き換えてください。

【Google Apps Script】

  • ステップ4:

  • Google Apps Scriptプロジェクトの作成

  • 4.1. Googleアカウントにログインし、Google Apps Scriptのウェブサイトを開きます。

  • 4.2. 「新しいプロジェクト」をクリックして、新しいプロジェクトを作成します。

  • ステップ5:

  • コードの貼り付けと編集

  • 5.1. Google Apps Scriptのエディタで、上記のコード全体を「Code.gs」にコピー&ペーストします。

  • 5.2. 必要に応じて、LINEアクセストークン、OpenAI APIキー、およびLINEユーザーIDを更新してください。

  • ステップ6:

  • Webアプリケーションとしてデプロイ

  • 6.1. Google Apps Scriptエディタで、「公開」>「ウェブアプリケーションとしてデプロイ」を選択します。

  • 6.2. 「Webアプリケーションとしてデプロイ」ダイアログで、次のオプションを設定します。

  • アクセス許可: 自分のみ

  • 実行するアプリ: 自分

  • 6.3. 「デプロイ」ボタンをクリックします。

  • ステップ7:

  • Webhook URLの設定

  • 7.1. Google Apps ScriptのウェブアプリケーションURLをコピーします。

  • 7.2. LINE Developersの「Messaging API」タブに戻り、「Webhook URL」セクションにURLを貼り付けます。

  • 7.3. 「Verify」ボタンをクリックして、Webhook URLが正しく動作しているこることを確認してください。

  • ステップ8:

  • Webhookの有効化

  • 8.1. まだ有効化されていない場合は、「Webhookの利用」スイッチをオンにして、Webhookを有効化します。

  • ステップ9:

  • トリガーの設定 (任意)

  • 9.1. 定期的にメッセージを送信したい場合は、Google Apps Scriptエディタで「編集」>「現在のプロジェクトのトリガー」を選択します。

  • 9.2. 画面右下の「+ トリガーを追加」ボタンをクリックし、以下の設定を行います。

  • 実行する関数: sendDailyMessage

  • 実行するデプロイ: Head

  • イベントのソース: 時間主導型

  • タイプ: 日ごとのタイマー

  • 時間: お好みの時間帯を選択 9.3. 「保存」ボタンをクリックして、トリガーを設定します。

これで、上記のプログラムコードが導入され、LINEとOpenAI APIを連携させることができました。ユーザーがLINEでメッセージを送信すると、Google Apps ScriptがOpenAI APIを介して返信を生成し、LINEで返信が表示されます。また、オプションで設定したトリガーにより、毎日定時にメッセージが送信されます。

執筆アシスタント:chatGPT

chatGPT4.0


この記事が気に入ったらサポートをしてみませんか?