
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- チャットボットを作成して、特定のボタンを表示させ、ボタンに応じた反応をさせるようにしたい(テキスト入力によるエラーや、回答ミスを減らすため)。
前提
ここに質問の内容を詳しく書いてください。
GASでチャットボットを作って、業務に関する質問や申請をある程度自動化していければと考えています。
しかし、初めて作っているので、わからないことだらけです。
おうむ返しをする初期状態から下記コードをChatGPTの力を借りつつ、実現したいコードのサンプル例を出してもらいましたが、下記エラーメッセージが表示されてしまいます。
また、おうむ返しをする初期コード以外に反応が全くないのはエラー状態だからでしょうか?
発生している問題・エラーメッセージ
Exception: Request failed for https://chat.googleapis.com returned code 403. Truncated server response: { "error": { "code": 403, "message": "The request is missing a valid API key.", "status": "PERMISSION_DENIED" } } (use muteHttpExceptions option to examine full response) sendCard @ ボタン.gs:52 orderItem @ ボタン.gs:87
該当のソースコード
GoogleAppsScript
1function doPost(e) { 2 var response = JSON.parse(e.postData.contents); 3 var message = response.message.text; 4 5 var card = { 6 "cards": [ 7 { 8 "header": { 9 "title": "物品発注" 10 }, 11 "sections": [ 12 { 13 "widgets": [ 14 { 15 "buttons": [ 16 { 17 "textButton": { 18 "text": "物品発注", 19 "onClick": { 20 "action": { 21 "actionMethodName": "orderItem" 22 } 23 } 24 } 25 } 26 ] 27 } 28 ] 29 } 30 ] 31 } 32 ] 33 }; 34 35 return sendCard(card); 36} 37 38function sendCard(card) { 39 var payload = { 40 "cards": [card] 41 }; 42 43 var options = { 44 "method": "post", 45 "contentType": "application/json", 46 "payload": JSON.stringify(payload), 47 "headers": { 48 "Authorization": "AIzaSyDvNixZKjMFM***********BlvLtMDDmjGF10zB20" 49 } 50}; 51 52 var response = UrlFetchApp.fetch("https://chat.googleapis.com/v1/spaces/5vI8dkA**AE/messages", options); 53 return response.getContentText(); 54} 55 56function orderItem() { 57 // 物品発注処理を実行するコードをここに記述する 58 59 // 物品発注表のスプレッドシートのURLを取得する 60 var spreadsheetId = "1_xTTi_nxHtw9s5JPdnHQYknPpKzs***ZA6JR2NHajKl0"; 61 var spreadsheet = SpreadsheetApp.openById(spreadsheetId); 62 var url = spreadsheet.getUrl(); 63 64 // カードを作成する 65 var card = { 66 "cards": [ 67 { 68 "header": { 69 "title": "物品発注" 70 }, 71 "sections": [ 72 { 73 "widgets": [ 74 { 75 "textParagraph": { 76 "text": "物品発注表へのリンク: " + url 77 } 78 } 79 ] 80 } 81 ] 82 } 83 ] 84 }; 85 86 // カードをGoogle Chatに送信する 87 sendCard(card); 88} 89 90 91 92
試したこと
APIキーが作成していなかったようなので、作成し貼り付けしてみましたが改善せす。
GooglechatAPIが有効化されているかも再確認しました。
補足情報(FW/ツールのバージョンなど)
勉強しながら少しずつ進めていければと思いますが、よろしければご教示をお願いいたします。
なるべくgoogleサービスだけで完結させたいです。


あなたの回答
tips
プレビュー