SaveUserId


  
  var token = 'xxx';  //Channel access token

function doPost(e) {
  var json = JSON.parse(e.postData.contents); // อ่านข้อมูลที่ส่งมาจาก LINE
  var events = json.events;

  // วนลูปทุก event ที่ได้รับ
  events.forEach(function(event) {
    var eventType = event.type;

    if (eventType === 'follow' || eventType === 'message') {
      var userId = event.source.userId; // ดึง userId ของผู้ใช้
      saveUserProfile(userId); // เรียกฟังก์ชันเพื่อดึงข้อมูลโปรไฟล์และบันทึกลง Google Sheet

      if (eventType === 'message') {
        var replyToken = event.replyToken;
        var messageText = event.message.text; // ข้อความที่ผู้ใช้ส่งมา
        var replyMessage = 'ขอบคุณที่ส่งข้อความมาหาเรา: ' + messageText;
        
        // ส่งข้อความตอบกลับไปยังผู้ใช้
        replyToUser(replyToken, replyMessage);
      }
    }
  });

  return ContentService.createTextOutput(JSON.stringify({ 'status': 'success' })).setMimeType(ContentService.MimeType.JSON);
}

function saveUserProfile(userId) {
  var url = 'https://api.line.me/v2/bot/profile/' + userId; // API ดึงโปรไฟล์

  var options = {
    'method': 'get',
    'headers': {
      'Authorization': 'Bearer ' + token
    }
  };

  // เรียก API เพื่อดึงข้อมูลโปรไฟล์ผู้ใช้
  var response = UrlFetchApp.fetch(url, options);
  var profile = JSON.parse(response.getContentText());

  var displayName = profile.displayName; // ชื่อผู้ใช้
  var pictureUrl = profile.pictureUrl;   // รูปโปรไฟล์ผู้ใช้ (ถ้ามี)

  // บันทึกข้อมูลลงใน Google Sheet
  var sheet = SpreadsheetApp.getActive().getSheetByName('Users'); // ชื่อชีทที่เก็บข้อมูล
  var found = sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues().flat().indexOf(userId);

  // ถ้ายังไม่มี userId ใน Sheet ให้เพิ่มข้อมูลใหม่
  if (found === -1) {
    sheet.appendRow([userId, displayName, pictureUrl, new Date()]);
  }
}

function replyToUser(replyToken, message) {
  var url = 'https://api.line.me/v2/bot/message/reply';
  
  var payload = {
    replyToken: replyToken,
    messages: [
      {
        type: 'text',
        text: message
      }
    ]
  };

  var options = {
    'method': 'post',
    'headers': {
      'Authorization': 'Bearer ' + token,
      'Content-Type': 'application/json'
    },
    'payload': JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, options);
}


  

{fullwidth}



ติดต่อสอบถามปัญหาได้เลยครับ

แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า