Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- require('dotenv').config();
- const line = require('@line/bot-sdk');
- const Datastore = require('@google-cloud/datastore');
- const config = {
- channelAccessToken: process.env.CHANNEL_ACCESS_TOKEN,
- channelSecret: process.env.CHANNEL_SECRET,
- };
- const datastore = Datastore();
- const client = new line.Client(config);
- function handleEvent(event) {
- console.log(event);
- var message = '';
- const query = datastore.createQuery(event.message.type);
- return datastore.runQuery(query).then((results) => {
- const messages = results[0];
- message = messages[Math.floor(Math.random() * messages.length)].text;
- const echo = { type: 'text', text: message };
- return client.replyMessage(event.replyToken, echo);
- });
- }
- exports.handler = function echoBot (req, res) {
- const signature = req.get('x-line-signature');
- if (!signature) {
- throw new line.SignatureValidationFailed("no signature");
- }
- if (!line.validateSignature(req.rawBody, config.channelSecret, signature)) {
- throw new line.SignatureValidationFailed("signature validation failed", signature);
- }
- Promise
- .all(req.body.events.map(handleEvent))
- .then(result => res.status(200).send(`Success: ${result}`))
- .catch(err => res.status(400).send(err.toString()));
- };
Add Comment
Please, Sign In to add comment