【LINEbot×GAS】코코이치bot 만들어 보았다! (메모)
8847 단어 MessageAPI자바스크립트linebotgas
이 기사에 대하여
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의 이용을 온으로 한다.
앞으로 마음이 가면 할 일
· 기존 메뉴에 토핑 가능
・유저의 동시 액세스 대응
· 토핑을 모든 종류 중에서 무작위로 선택할 수 있도록 한다
・지역 한정 메뉴의 반영
※초학자이므로 잘못된 정보가 있을지도 모릅니다. 양해 바랍니다.
Reference
이 문제에 관하여(【LINEbot×GAS】코코이치bot 만들어 보았다! (메모)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryotaro00963/items/f61a29c497fe59a97ef2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
=vlookup(検索値,取得範囲,探索列,検索の型)
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"
}]
}
}]
};
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;
}
Reference
이 문제에 관하여(【LINEbot×GAS】코코이치bot 만들어 보았다! (메모)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryotaro00963/items/f61a29c497fe59a97ef2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)