노마드 워커를 위한 전원 확보 BOT를 만들었다
만든 계기
사실은 포켓몬 GoAPI를 사용하여 가까운 포켓몬 알림을 만들고 싶었지만,
2단계 인증으로 손잡았기 때문에 포기하지만,
위치 정보를 사용한 API는 여러가지 사용도가 나오려고 생각했다.
이동 중에 일 전화가 들어와 도중 카페에서 급히 일하고 싶어졌다.
전원 있는 카페는 어디일까… 라고 생각해,
스타버라면 전원이 있을 거라 생각하고 들어가면 없거나 해서 커피비 낭비가 되거나…
그런 때에 Discord에서 까다로운 전원이 어떻게든...라는 대화가 들려왔다.
현재지에서 전원을 확보할 수 있어 자신이 들어가고 싶은 점포가 표시되면 고맙다고 생각해 LINEBOT를 만들었습니다.
동작 이미지
기능 개요
1. LINEBOT 대화 화면에서 자신의 위치 정보를 보냅니다.
2. 경도 위도 정보에서 모바일 오아시스의 MAP 링크가 전송됩니다.
3. 링크를 열면 전원을 확보할 수 있는 카페가 아이콘 표시된다.
샘플 코드
ngrok에서 움직이지만 Now에서 움직이지 않았다 ...
node.js:server.js'use strict';
const express = require('express');
const line = require('@line/bot-sdk');
const request = require('request');
const PORT = process.env.PORT || 3000;
const config = {
channelSecret: '[channelSecret]',
channelAccessToken: '[channelAccessToken]'
};
const app = express();
var json;
app.get('/', (req, res) => res.send('Hello LINE BOT!'));
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
console.log(req.body.events[0].message.latitude);
console.log(req.body.events[0].message.longitude);
var latGeo =req.body.events[0].message.latitude;
var lonGeo =req.body.events[0].message.longitude;
request('http://oasis.mogya.com/api/v0/map?lat=' + latGeo + '&lng=' + lonGeo + '', function (error, response, body) {
var jsonBefore = JSON.parse(body);
//console.log(jsonBefore.url);
json=jsonBefore.url;
})
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
function handleEvent(event) {
//位置情報以外が来た場合は、テキストで返す
if (event.type !== 'message' || event.message.type !== 'location') {
//return Promise.resolve(null);
return client.replyMessage(event.replyToken, {
type: 'text',
text: event.message.text, //実際に返信の言葉を入れる箇所
text: '左下の「+」アイコンから位置情報を送ってください' //実際に返信の言葉を入れる箇所
});
}
//Message
return client.replyMessage(event.replyToken, {
type: "template",
altText: "代替テキスト",
template: {
type: 'buttons',
actions: [
{
type: 'uri',
uri: json,
label: '近場で電源確保できる場所を開く'
}
],
title: '電源がなくて困ったらこココ!',
text: ' 電源マップ'
}
}
);
}
//app.listen(PORT);
(process.env.NOW_REGION) ? module.exports = app : app.listen(PORT);
console.log(`Server running at ${PORT}`);
Reference
이 문제에 관하여(노마드 워커를 위한 전원 확보 BOT를 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/iizuka2019/items/ec8a1046dcd46a618112
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
기능 개요
1. LINEBOT 대화 화면에서 자신의 위치 정보를 보냅니다.
2. 경도 위도 정보에서 모바일 오아시스의 MAP 링크가 전송됩니다.
3. 링크를 열면 전원을 확보할 수 있는 카페가 아이콘 표시된다.
샘플 코드
ngrok에서 움직이지만 Now에서 움직이지 않았다 ...
node.js:server.js'use strict';
const express = require('express');
const line = require('@line/bot-sdk');
const request = require('request');
const PORT = process.env.PORT || 3000;
const config = {
channelSecret: '[channelSecret]',
channelAccessToken: '[channelAccessToken]'
};
const app = express();
var json;
app.get('/', (req, res) => res.send('Hello LINE BOT!'));
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
console.log(req.body.events[0].message.latitude);
console.log(req.body.events[0].message.longitude);
var latGeo =req.body.events[0].message.latitude;
var lonGeo =req.body.events[0].message.longitude;
request('http://oasis.mogya.com/api/v0/map?lat=' + latGeo + '&lng=' + lonGeo + '', function (error, response, body) {
var jsonBefore = JSON.parse(body);
//console.log(jsonBefore.url);
json=jsonBefore.url;
})
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
function handleEvent(event) {
//位置情報以外が来た場合は、テキストで返す
if (event.type !== 'message' || event.message.type !== 'location') {
//return Promise.resolve(null);
return client.replyMessage(event.replyToken, {
type: 'text',
text: event.message.text, //実際に返信の言葉を入れる箇所
text: '左下の「+」アイコンから位置情報を送ってください' //実際に返信の言葉を入れる箇所
});
}
//Message
return client.replyMessage(event.replyToken, {
type: "template",
altText: "代替テキスト",
template: {
type: 'buttons',
actions: [
{
type: 'uri',
uri: json,
label: '近場で電源確保できる場所を開く'
}
],
title: '電源がなくて困ったらこココ!',
text: ' 電源マップ'
}
}
);
}
//app.listen(PORT);
(process.env.NOW_REGION) ? module.exports = app : app.listen(PORT);
console.log(`Server running at ${PORT}`);
Reference
이 문제에 관하여(노마드 워커를 위한 전원 확보 BOT를 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/iizuka2019/items/ec8a1046dcd46a618112
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ngrok에서 움직이지만 Now에서 움직이지 않았다 ...
node.js:server.js
'use strict';
const express = require('express');
const line = require('@line/bot-sdk');
const request = require('request');
const PORT = process.env.PORT || 3000;
const config = {
channelSecret: '[channelSecret]',
channelAccessToken: '[channelAccessToken]'
};
const app = express();
var json;
app.get('/', (req, res) => res.send('Hello LINE BOT!'));
app.post('/webhook', line.middleware(config), (req, res) => {
console.log(req.body.events);
console.log(req.body.events[0].message.latitude);
console.log(req.body.events[0].message.longitude);
var latGeo =req.body.events[0].message.latitude;
var lonGeo =req.body.events[0].message.longitude;
request('http://oasis.mogya.com/api/v0/map?lat=' + latGeo + '&lng=' + lonGeo + '', function (error, response, body) {
var jsonBefore = JSON.parse(body);
//console.log(jsonBefore.url);
json=jsonBefore.url;
})
Promise
.all(req.body.events.map(handleEvent))
.then((result) => res.json(result));
});
const client = new line.Client(config);
function handleEvent(event) {
//位置情報以外が来た場合は、テキストで返す
if (event.type !== 'message' || event.message.type !== 'location') {
//return Promise.resolve(null);
return client.replyMessage(event.replyToken, {
type: 'text',
text: event.message.text, //実際に返信の言葉を入れる箇所
text: '左下の「+」アイコンから位置情報を送ってください' //実際に返信の言葉を入れる箇所
});
}
//Message
return client.replyMessage(event.replyToken, {
type: "template",
altText: "代替テキスト",
template: {
type: 'buttons',
actions: [
{
type: 'uri',
uri: json,
label: '近場で電源確保できる場所を開く'
}
],
title: '電源がなくて困ったらこココ!',
text: ' 電源マップ'
}
}
);
}
//app.listen(PORT);
(process.env.NOW_REGION) ? module.exports = app : app.listen(PORT);
console.log(`Server running at ${PORT}`);
Reference
이 문제에 관하여(노마드 워커를 위한 전원 확보 BOT를 만들었다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iizuka2019/items/ec8a1046dcd46a618112텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)