-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
65 lines (59 loc) · 1.93 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
const functions = require('firebase-functions');
const request = require('request');
const region = 'asia-east2';
const spec = {
memory: "1GB"
};
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase)
const db = admin.firestore();
exports.LineMessAPI = functions.region(region).runWith(spec).https.onRequest((request, respond) => {
var event = request.body.events[0]
var userId = event.source.userId;
var timestamp = event.timestamp;
var replyToken = event.replyToken;
var userText = ""
if (event.type === "message" && event.message.type === "text"){
userText = event.message.text
} else {
userText = "(Message type is not text)";
}
const addChatHistory = db.collection("chat-history").doc(timestamp.toString()).set({
"userId": userId,
"Message": userText,
"timestamp": timestamp
})
const getUserData = db.collection("Customer").doc(userId).get().then( returnData =>{
if (returnData.exists){
var name = returnData.data().name
var surname = returnData.data().surname
var nickname = returnData.data().nickname
reply_message(replyToken, `Hello ${nickname}(${name} ${surname})`)
} else {
reply_message(replyToken, "You are not the customer, Register?")
}
return null
}).catch(err => {
console.log(err)
})
return respond.status(200).send(request.method);
});
const LINE_HEADER = {
"Content-Type": "application/json",
"Authorization": "Bearer {'Your channel access token'}"
}
function reply_message(replytoken,textfrom){
return request.post({
uri: `https://api.line.me/v2/bot/message/reply`,
headers: LINE_HEADER,
body: JSON.stringify({
replyToken: replytoken,
messages: [
{
type: "text",
text: textfrom
}
]
})
});
}