介绍

我能够创建类似于 LINEbot 原型的东西,所以
省略 LINE 部分,只留下 GAS 脚本部分

你想做的事

  • 在 GAS 脚本表上写下预期的响应列表
  • 如果回复列表中有匹配的单词,则接收来自用户的消息并返回回复。

气体电子表格

GASでLINEbot(スプレッドシートの内容から返信する)

脚本的内容

令牌是敏感信息,所以我屏蔽了它。如果您收到不在响应列表中的消息,只需返回“晚安”。

function doPost(e) {
  var event = JSON.parse(e.postData.contents).events[0];
  var replyToken= event.replyToken;

  if (typeof replyToken === 'undefined') {
    return;
  }

  var url = 'https://api.line.me/v2/bot/message/reply';
  var channelToken = '**********';

  if(event.type === "message"){
    var text = event.message.text;

    var res_word = vlookup(text)

    if(!res_word){
      var messages = [{
        'type': 'text',
        'text': 'こんばんわ'
      }];
    } else{
      var messages = [{
        'type': 'text',
        'text': res_word
      }];
    }

  }

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + channelToken,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': messages,
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);

}

function vlookup(req_word) {
 
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var rows = sheet.getLastRow()-1;
 var datas = sheet.getRange(2,1,rows,2).getValues();
 
 //連想配列に変換
 var object = {}; //連想配列の箱を用意
 
 for(var i=0; i<datas.length; i++){ //各行のデータを連想配列に格納
   
   var key = datas[i][0];
   var value = datas[i][1];
   object[key] = value;
 
 }

  return object[req_word];
}

原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308627167.html

相关文章:

  • 2021-12-05
  • 2021-09-07
  • 2022-12-23
  • 2021-10-24
  • 2021-05-29
  • 2021-11-28
  • 2021-11-04
  • 2021-12-04
猜你喜欢
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2021-12-05
相关资源
相似解决方案