【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で返信が表示されます。また、オプションで設定したトリガーにより、毎日定時にメッセージが送信されます。
この記事が気に入ったらサポートをしてみませんか?