前提・実現したいこと
- LINEbotとユーザーとの一対一のやり取りにて
ユーザーが送ったメッセージ、送った時刻、ユーザーのdisplayName
を取得し、スプレッドシートに表示したい
- displayNameという変数に格納したい
- (できればユーザーのアイコン画像のURLも表示したい)
参考
https://teratail.com/questions/304140
こちらのページを参考にしました。
現在のコード
プログラミングを全く初めて行ったので、書き方が全く分からないです。
JavaScript
1 2var TOKEN = "..."; 3 4function doPost(e) { 5 var sheet; 6 var userMessage = JSON.parse(e.postData.contents).events[0].message.text; 7 8 var sheet = SpreadsheetApp.getActiveSheet(); 9 var lastRow = sheet.getLastRow() + 1; 10 11 const req = JSON.parse(e.postData.contents); 12 const event = req.events[0]; 13 14 const userId = event.source.userId; 15 16 const endPoint = `https://api.line.me/v2/bot/profile/${userId}`; 17 const res = UrlFetchApp.fetch(endPoint, { 18 headers: { 19 "Content-Type": "application/json; charset=UTF-8", 20 Authorization: "Bearer " + TOKEN, 21 }, 22 method: "GET", 23 }); 24 25 const userDisplayName = JSON.parse(res.getContentText()).displayName; 26 27 let dateCell = sheet.getRange(lastRow, 1); 28 dateCell.setValue(new Date()); 29 30 let messageCell = sheet.getRange(lastRow, 2); 31 messageCell.setValue(userMessage); 32 33 let usernameCell = sheet.getRange(lastRow, 3); 34 usernameCell.setValue(userDisplayName); 35 36 return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})) 37 .setMimeType(ContentService.MimeType.JSON); 38} 39 40 41
回答1件
あなたの回答
tips
プレビュー