【LINEbot×GAS】코코이치bot 만들어 보았다! (메모)

이 기사에 대하여



GAS와 LINEbot(Messaging API)을 연계하여 『코코이치bot』을 만든 과정을 기술합니다.

코코이치bot




(이 QR 코드에서 코코이치 bot을 등록 할 수 있습니다,,)

GAS 사용 방법



① 스프레드시트를 엽니다.

② 공구를 선택합니다.
③ 스크립트 편집기를 선택합니다.

④여기에 코드를 기술해 갑니다.


LINEbot(MessagingAPI)의 이용 방법



①이하 URL에 액세스합니다.
htps : //에서 ゔぇぺぺrs. 네. 비 · 자 /
② 로그인(기존 LINE 계정 이용)
③Developer 대시보드

④신규 채널 작성→MessageingAPI를 선택

⑤ 필수 항목을 입력합니다.


⑥ 설정 항목 변경
Messaging API 설정 → 응답 메시지, 인사말 메시지를 다음과 같이 변경합니다.


코코이치bot 코드와 LINEbot 연계



전부 700행의 코드가 있으므로, 일부 발췌해 기술하고 싶습니다.
・코코이치의 전 토핑, 샐러드, 음료, 사이드 메뉴 등을 스프레드 시트에 등록(엄청 힘들었습니다,,)


・다른 시트를 준비해, 여기에 LINEbot에서 등록된 데이터를 등록해 갑니다. (스프레드시트 = DB)


・A, C, E열은 LINEbot의 템플릿 버튼으로 얻은 답변을 등록
· B, D, F 열은 스프레드 시트의 함수로 금액을 취득
=vlookup(検索値,取得範囲,探索列,検索の型)

를 사용하여 스프레드시트에 등록한 메뉴에서 금액을 받고 있습니다.

버튼 템플릿 코드(최대 4개 선택)
( ぇぺぺrs. 네. 비 · 자 / 도 CS / 메사 긴 g 아피 )
var postData = {
      "replyToken": e.replyToken, #eは引数
      "messages": [{
        "type": "template",
        "altText": "select",
        "template": {
          "type": "buttons",
          "thumbnailImageUrl": "『写真のURL』",
          "title": "Menu",
          "text": "カレーのルー何にする?",
          "actions": [{
              "type": "message",
              "label": "ビーフ",
              "text": "ビーフ"
          },
          {
              "type": "message",
              "label": "ポーク",
              "text": "ポーク"
          },
          {
              "type": "message",
              "label": "ココイチベジ",
              "text": "ココイチベジ"
          },
          {
              "type": "message",
              "label": "ハッシュドビーフ",
              "text": "ハッシュドビーフ"
          }] 
        }
       }]
    };

샐러드와 음료, 디저트를 주문할지 여부는 다음 템플릿을 사용했습니다.
var postData = {
      "replyToken": e.replyToken,
      "messages": [{
        "type": "template",
        "altText": "select",
        "template": {
          "type": "confirm",
          "thumbnailImageUrl": "https://www.ichibanya.co.jp/assets/images/common/cmn-pct-logo01.png",
          "title": "Menu",
          "text": "デザートいる?",
          "actions": [{
              "type": "message",
              "label": "YES",
              "text": "デザートYES"
          },
          {
              "type": "message",
              "label": "NO",
              "text": "デザートNO"
          }] 
        }
       }]
    };

버튼 템플릿의 차이로는,
· "type":"buttons"→"type":"confirm"
・선택이 2택

그리고 『오늘은 어떤 기분? '와 다음 코드를 사용하여 사용자에게 질문합니다.
var postData = {
      "replyToken": e.replyToken,
      "messages": [{
        "type": "template",
        "altText": "select",
        "template": {
          "type": "buttons",
          "thumbnailImageUrl": "https://www.ichibanya.co.jp/assets/images/common/cmn-pct-logo01.png",
          "title": "Menu",
          "text": "今日はどんな気分?",
          "actions": [{
              "type": "message",
              "label": "肉",
              "text": "肉"
          },
          {
              "type": "message",
              "label": "魚介",
              "text": "魚介"
          },
          {
              "type": "message",
              "label": "野菜",
              "text": "野菜"
          },
          {
              "type": "message",
              "label": "その他",
              "text": "その他"
          }] 
        }
       }]
    };

만약 '해산물'을 입력하면,
등록한 해산 메뉴에서 배열을 가져오고, 임의로 꺼낸 두 개를 데이터베이스에 등록합니다.
if(input_text=="魚介"){
    const gyokai = sheet1.getRange('D2:E11').getValues(); 
  
    const gyokai_length = gyokai.filter(String).length; 

    var gyokai1 = gyokai[randomizing(gyokai_length)]
    var gyokai2 = gyokai[randomizing(gyokai_length)]

    sheet.getRange(LlastRow+1,12).setValue(gyokai1[0]);  
    sheet.getRange(LlastRow+1,13).setValue(gyokai1[1]);  
    sheet.getRange(LlastRow+1,14).setValue(gyokai2[0]); 
    sheet.getRange(LlastRow+1,15).setValue(gyokai2[1]); 

랜덤 함수는 이쪽
function randomizing(e){
  rndNum = Math.floor(Math.random()*e);
  return rndNum;
}

참고 문헌 : htps : //가 되어-t. 코 m/가 s-오미쿠지/

그리고 마지막으로 「메뉴 결과」라고 하는 버튼을 탭하면,
등록한 최신 데이터와 금액을 꺼내 계산합니다.
계산이 끝나면 다음과 같이 출력됩니다.


LINEbot과 관련된 데이터 읽기/쓰기에 관해서는 이 문서를 참고했습니다.
htps //w w. p-p 등 c 치세. 네 t/2017/10/네이버 t_25. HTML

LINEbot 연계



① 웹 애플리케이션으로 도입

② 다음과 같이 설정

③ URL 복사

④LINE Developer로 돌아가기
⑤ Messaging API → Webhook 설정으로 가서 아래와 같이 URL 붙여넣기와 Webhook의 이용을 온으로 한다.


앞으로 마음이 가면 할 일



· 기존 메뉴에 토핑 가능
・유저의 동시 액세스 대응
· 토핑을 모든 종류 중에서 무작위로 선택할 수 있도록 한다
・지역 한정 메뉴의 반영

※초학자이므로 잘못된 정보가 있을지도 모릅니다. 양해 바랍니다.

좋은 웹페이지 즐겨찾기