OpenAIとLINEをつなげてBOTを作りたいのですが401エラーの解決策がわからず困っています。

実現したいこと

LINEBOTにOPENAAIをつなげて対話形式のBOTを作成したい

前提

LINEBOTが作りたい

OPENAIをLINEBOTにつなげて対話形式のLINEBOTを作っています。
しかし、デプロイしてwebhookのURLをいくら検証をしても
ボットサーバーから200以外のHTTPステータスコードが返されました。(401 Unauthorized)と表示され反応が返って来ません。対処方法がわからず困っています。

発生している問題・エラーメッセージ

15:11:38

1TypeError: Cannot read properties of undefined (reading 'postData') 2doPost @ コード.gs:5 3エラーメッセージ

該当のソースコード

ソースコード ```const LINE_ACCESS_TOKEN = 'ご自身のLINEのアクセストークンを入力してください'; const OPENAI_APIKEY = 'ご自身のOpenAIのAPIキーを入力してください'; function doPost(e) { const event = JSON.parse(e.postData.contents).events[0]; const replyToken = event.replyToken; let userMessage = event.message.text; const url = 'https://api.line.me/v2/bot/message/reply'; 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-3.5-turbo", "messages": [ {"role": "system", "content": ` 答えた後に、 知らんけど。を追記してください `}, {"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(); 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, }] }) }); return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON); } ### 試したこと 何度かデプロイして新しいURLをwebhookに張り付けたがなにも変わらなかった。 webhookを有効にしてみたり、メッセージ送信をON/OFFにしてきりかえたりもした。 ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) osはWindowsを使用しています。 openAIkeyは無料のものを使用しています。 ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント