LINE+AWS Lambda+API Gateway로 피드백 봇 만들기
4299 단어 Node.jsAPIGatewayLinelambda
・인터페이스: 라인 공식 계정
・처리: AWS Lambda(+API Gateway)
・DB:Notion
간단한 도구를 만들다.
인상은 이렇다.
이번 일
우선 라인 공식 계정의 기고문 입수와 람다의 라인 메사징 API 액션 검증을 위해 기고문 내용을 그대로 답장하는 리워드봇 방식의 물건을 제작했다.
전제 조건
· LINE Developers를 통해 사용자 등록을 실시하고 공식 계정을 제작합니다.
· 만든 계정을 수중에 있는 라인 앱을 통해 친구에게 추가한다.
· AWS의 콘솔을 사용할 수 있다.
・Node.js 14.x
절차.
① API Gateway+Lambda를 설정하고 브라우저에서 함수를 호출합니다.
② LINE에서 API Gateway를 호출합니다.
③ Lambda에서 LINE 기고를 할 수 있도록 설정
① API Gateway+Lambda를 설정하고 브라우저에서 함수를 호출합니다.
https://qiita.com/DJROU/items/8b04f1fc2ce1a1dc5954
아니에요.
'적당한'부분은 적당한 상태를 유지할 수 있다.
② LINE에서 API Gateway를 호출합니다.
LINE의 Webhook URL 표시줄을 사용하면 LINE의 투고를 통해 브라우저에서 방금 호출한 Lambda를 호출할 수 있습니다.
LINE Developer의 콘솔 화면에서
최상위 > (생성된 공식 계정) > Messageing API 설정 > Webhook 설정 표시줄을 보십시오.
①의 API Gateway에서 만든 URL을 여기에 붙여 넣습니다.
저장한 후 [확인]을 눌러 [성공]을 표시하면 OK입니다.
람바다 진짜 불려나온 거 보여줘.
Lambda에서 함수 편집 화면을 열고 탭 모니터링에서 CloudWatch 로그 표시를 누릅니다.
클라우드 워치 화면으로 이동했기 때문에, 최신 실행이 '검증' 단추를 눌렀는지 확인할 수 있다면, LINE에서 온 Lambda 호출이 성공했습니다.
③ Lambda에서 LINE 기고를 할 수 있도록 설정
방금 만든 람다의 내용을 간하다.
LINE에 기고한 텍스트를 가져와 바로 반환합니다.
testfunc.js
'use strict';
const line = require('@line/bot-sdk');
exports.handler = (event, context, callback) => {
console.log("event.body:", event.body);
const client = new line.Client({
channelAccessToken: 'LINE公式アカウントのチャネルアクセストークン'
});
const message = {
type: 'text',
text: JSON.parse(event.body).events[0].message.text
};
const replyToken =JSON.parse(event.body).events[0].replyToken;
client.replyMessage(replyToken, message).then((data) => {
console.log(data);
callback(null, event);
}).catch((err) => {
console.log("だめでし");
callback(err, "NG");
});
};
다음은 보충입니다.모듈 가져오기
testfunc.js
const line = require('@line/bot-sdk');
node.js의 모듈은 Lambda Layers를 사용합니다.https://qiita.com/DJROU/items/bcdc2902757e606e9226
채널 액세스 토큰
testfunc.js
const client = new line.Client({
channelAccessToken: 'LINE公式アカウントのチャネルアクセストークン'
});
LINE Developer의 콘솔 화면에서상단 > (생성된 공식 계정) > Messageing API 설정의 하단에 있는 채널 접근 카드를 발표하고 붙여넣습니다.
수신 텍스트 형식 가져오기 및 보내기
testfunc.js
const message = {
type: 'text',
text: JSON.parse(event.body).events[0].message.text
};
const replyToken =JSON.parse(event.body).events[0].replyToken;
client.replyMessage(replyToken, message).then((data) => {
console.log(data);
callback(null, event);
}).catch((err) => {
console.log("だめでし");
callback(err, "NG");
});
JSON.parse(event.body).events[0].message.LINE에서 텍스트 텍스트를 text로 보냈습니다.LINE에서 보낸 데이터 형식의 이벤트를 보십시오.출력 바디가 좋아요.
또한 리플리 메시지에 대해 공식 문서에서 보내는 매개 변수는 상기 메시지 형식으로 지정됩니다.
replyToken은 replyMessage의 첫 번째 매개 변수로 수신된 데이터에 준비되어 있습니다.
같은 이벤트.바디로 확인해.
어떤 메시지에 대한 대답이겠죠, 꼭.(적당)
이상은 LINE에서 적절한 메시지를 보내면 그대로 답장을 할 수 있을 것 같은 사랑스러운 샤오메이.
Reference
이 문제에 관하여(LINE+AWS Lambda+API Gateway로 피드백 봇 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/DJROU/items/900e3c32b87b5d43d8ed텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)