chat bot를 서버리스로 만들어 보았다 LINE Messaging API × Google Apps Script × DOCOMO API
소개
처음 뵙겠습니다. 앞으로 조금씩 게시하려고합니다.
이번에는 chatbot에 관한 것입니다.
회사에서 향후 chatbot의 안건이 나올 것 같아서 예습이 굳이 만들어 보기로 했습니다.
참고로 한 기사입니다. 보다는 여기에 써 있을 수 있도록 흉내 보았을 뿐입니다.
htps : // 코 m / 폰 조피 / ms / 913 굳이 7f5b1117 네 4860
이런 느낌이 듭니다. 별로 대화가 이루어지지 않았습니다.
사용한 것
절차 요약
절차 상세
Google Apps Script 준비
놀라울 정도로 번거로움이 들지 않았다.
1. Google 계정 얻기
1. 크롬에 Google Apps Script 넣기
1. Google 드라이브에서 '신규'-> '기타'-> '앱 추가'에서 GAS 선택
LINE Messaging API 신청하기
신청은 여기에서 합니다. 이때 LINE 계정이 필요합니다. 평소에 내가 사용하는 개인 계정을 사용했습니다. 개발용의 계정을 준비하고 싶었습니다만 전화 번호를 복수 가지고 있지 않기 때문에 하는 방법 없이입니다. (facebook 제휴라면 전화번호 없이도 LINE 계정을 만들 수 있는 것 같습니다)
ぇぺぺrs. 네. 메/그럼/어서 x. HTML
DOCOMO 잡담 대화 API 신청하기
여기에서 신청합니다.
htps : // v. smt. 아무도. 네. jp/? p = 그럼 x
(스쿠쇼를 찍는 것을 잊고, 취하려고 생각하면 메인터넌스중에서 찍을 수 없었습니다. 마음이 향하면 추기합니다.)
Google Apps Script에서 LINE 및 DOCOMO API를 치십시오.
doPost
에서 post를 받습니다.
그리고 doPost
함수에서 UrlFetchApp.fetch
로 LINE Messaging API를 호출합니다.
fetch로 지정한 URL이 LINE Messaging API의 URL입니다. https://api.line.me/v2/bot/message/reply
회신의 문언은 getDialogueMessage
로 잡담 API를 두드리고, 반환해 온 내용을 response_message
에 담고 있습니다.
이제 LINE의 토크로 대화할 수 있게 됩니다.
var CHANNEL_ACCESS_TOKEN = 'LINE DEVELOPERで作成されたアクセストークン';
var DOCOMO_DIALOGUE_APIKEY = 'DOCOMO雑談APIのAPIKEY';
function doPost(e){
var reply_token = JSON.parse(e.postData.contents).events[0].replyToken;
if(typeof reply_token === 'undefined'){
return;
}
var user_message = JSON.parse(e.postData.contents).events[0].message.text;
var response_message = getDialogueMessage(user_message);
var url = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': reply_token,
'messages': [{
'type': 'text',
'text': response_message,
}],
}),
});
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
function getDialogueMessage(mes) {
var dialogueUrl = 'https://api.apigw.smt.docomo.ne.jp/dialogue/v1/dialogue?APIKEY=' + DOCOMO_DIALOGUE_APIKEY;
var dialogue_options = {
't': 20,
'utt': mes
};
var options = {
'method': 'POST',
'contentType': 'text/json',
'payload': JSON.stringify(dialogue_options)
};
var response = UrlFetchApp.fetch(dialogueUrl, options);
var content = JSON.parse(response.getContentText());
return content.utt;
}
Reference
이 문제에 관하여(chat bot를 서버리스로 만들어 보았다 LINE Messaging API × Google Apps Script × DOCOMO API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/cheese/items/33dda88acb5a63c7399c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var CHANNEL_ACCESS_TOKEN = 'LINE DEVELOPERで作成されたアクセストークン';
var DOCOMO_DIALOGUE_APIKEY = 'DOCOMO雑談APIのAPIKEY';
function doPost(e){
var reply_token = JSON.parse(e.postData.contents).events[0].replyToken;
if(typeof reply_token === 'undefined'){
return;
}
var user_message = JSON.parse(e.postData.contents).events[0].message.text;
var response_message = getDialogueMessage(user_message);
var url = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': reply_token,
'messages': [{
'type': 'text',
'text': response_message,
}],
}),
});
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
function getDialogueMessage(mes) {
var dialogueUrl = 'https://api.apigw.smt.docomo.ne.jp/dialogue/v1/dialogue?APIKEY=' + DOCOMO_DIALOGUE_APIKEY;
var dialogue_options = {
't': 20,
'utt': mes
};
var options = {
'method': 'POST',
'contentType': 'text/json',
'payload': JSON.stringify(dialogue_options)
};
var response = UrlFetchApp.fetch(dialogueUrl, options);
var content = JSON.parse(response.getContentText());
return content.utt;
}
Reference
이 문제에 관하여(chat bot를 서버리스로 만들어 보았다 LINE Messaging API × Google Apps Script × DOCOMO API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/cheese/items/33dda88acb5a63c7399c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)