위치 정보를 받으면 스탬프를 반환하는 LINE Bot
7827 단어 LINEmessagingAPIlinebot
소개
한 기사 의 영향을 받아 LINE Bot을 만들어 보았습니다. 환경 구축이나의 순서는 지금 추가이므로 생략합니다.
했던 일
제목대로 위치 정보를 받으면 스탬프를 반환합니다. 특히 의미가 없습니다. 연습을 위해 만들었습니다. 위 기사의 코드를 다음과 같이 만져 보았습니다.
index.js'use strict';
const functions = require('firebase-functions');
const express = require('express');
const line = require('@line/bot-sdk');
const config = {
channelSecret: 'hogehoge',
channelAccessToken: 'hugahuga'
};
const app = express();
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
async function handleEvent(event) {
if (event.message.type === 'location') {
return client.replyMessage(event.replyToken, {
type: 'sticker',
packageId: 11538,
stickerId: 51626496
});
}
if (event.type !== 'message' || event.message.type !== 'location') {
return Promise.resolve(null);
}
}
exports.app = functions.https.onRequest(app);
일단 해설
특히 해설이 필요 없을까 생각합니다만, 자신의 학습을 위해서 씁니다. 상기의 코드로 event.message.type
라고 있는 것이 LINE 유저로부터 보내 온 메세지가 text
인가 location
인가 image
인가를 판단하는 개소입니다 해주기 때문에 쉽습니다.) 이번은 위치 정보를 받았을 때의 판단을 하고 싶으므로, if (event.message.type === 'location'){...}
로서 블록내에 처리를 씁니다.
그런 다음 client.replyMessage()
에서 메시지를 반환합니다. 이 때 제 1 인수에 event.replyToken
를 넣어, 제 2 인수에 돌려주는 메세지의 바디를 구축합니다. 이번에는 다음과 같이 구축했습니다.
{
type: 'sticker'
packageId: 11538,
stickerId: 51626496
}
type:sticker
로 스탬프를 반환합니다. packageId
와 stickerId
가 돌려주는 스탬프를 선택할 수 있는 개소입니다. 이 목록 를 참고로 적당히 선택했습니다. packageID는 각 페이지의 왼쪽 상단에, stickerID는 각 스탬프의 그림 아래에 표시된 번호로 참조가 가능합니다.
동작의 모습
이런 느낌이 들었습니다.
글쎄, 특별한 의미는 없습니다. 네.
결론
위치 정보를 사용한 서비스를 구현할 수 있으면 좋겠다고 생각합니다. 그리고, LINE Things도 모처럼 만졌으므로 제휴해 보고 싶네요.
Reference
이 문제에 관하여(위치 정보를 받으면 스탬프를 반환하는 LINE Bot), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ufoo68/items/48cb29e6a14f2be3f076
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
제목대로 위치 정보를 받으면 스탬프를 반환합니다. 특히 의미가 없습니다. 연습을 위해 만들었습니다. 위 기사의 코드를 다음과 같이 만져 보았습니다.
index.js
'use strict';
const functions = require('firebase-functions');
const express = require('express');
const line = require('@line/bot-sdk');
const config = {
channelSecret: 'hogehoge',
channelAccessToken: 'hugahuga'
};
const app = express();
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
async function handleEvent(event) {
if (event.message.type === 'location') {
return client.replyMessage(event.replyToken, {
type: 'sticker',
packageId: 11538,
stickerId: 51626496
});
}
if (event.type !== 'message' || event.message.type !== 'location') {
return Promise.resolve(null);
}
}
exports.app = functions.https.onRequest(app);
일단 해설
특히 해설이 필요 없을까 생각합니다만, 자신의 학습을 위해서 씁니다. 상기의 코드로 event.message.type
라고 있는 것이 LINE 유저로부터 보내 온 메세지가 text
인가 location
인가 image
인가를 판단하는 개소입니다 해주기 때문에 쉽습니다.) 이번은 위치 정보를 받았을 때의 판단을 하고 싶으므로, if (event.message.type === 'location'){...}
로서 블록내에 처리를 씁니다.
그런 다음 client.replyMessage()
에서 메시지를 반환합니다. 이 때 제 1 인수에 event.replyToken
를 넣어, 제 2 인수에 돌려주는 메세지의 바디를 구축합니다. 이번에는 다음과 같이 구축했습니다.
{
type: 'sticker'
packageId: 11538,
stickerId: 51626496
}
type:sticker
로 스탬프를 반환합니다. packageId
와 stickerId
가 돌려주는 스탬프를 선택할 수 있는 개소입니다. 이 목록 를 참고로 적당히 선택했습니다. packageID는 각 페이지의 왼쪽 상단에, stickerID는 각 스탬프의 그림 아래에 표시된 번호로 참조가 가능합니다.
동작의 모습
이런 느낌이 들었습니다.
글쎄, 특별한 의미는 없습니다. 네.
결론
위치 정보를 사용한 서비스를 구현할 수 있으면 좋겠다고 생각합니다. 그리고, LINE Things도 모처럼 만졌으므로 제휴해 보고 싶네요.
Reference
이 문제에 관하여(위치 정보를 받으면 스탬프를 반환하는 LINE Bot), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ufoo68/items/48cb29e6a14f2be3f076
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
type: 'sticker'
packageId: 11538,
stickerId: 51626496
}
이런 느낌이 들었습니다.
글쎄, 특별한 의미는 없습니다. 네.
결론
위치 정보를 사용한 서비스를 구현할 수 있으면 좋겠다고 생각합니다. 그리고, LINE Things도 모처럼 만졌으므로 제휴해 보고 싶네요.
Reference
이 문제에 관하여(위치 정보를 받으면 스탬프를 반환하는 LINE Bot), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ufoo68/items/48cb29e6a14f2be3f076
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(위치 정보를 받으면 스탬프를 반환하는 LINE Bot), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ufoo68/items/48cb29e6a14f2be3f076텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)