Commit 889c144c5142699a23c578e3f4ef7aff10e58eaa
1 parent
b9184255
Exists in
master
SW RICH MENU
Showing
1 changed file
with
44 additions
and
2 deletions
Show diff stats
index.js
1 | const https = require("https"); | 1 | const https = require("https"); |
2 | const express = require("express"); | 2 | const express = require("express"); |
3 | const app = express(); | 3 | const app = express(); |
4 | -const PORT = process.env.PORT || 3000; | 4 | +const PORT = process.env.PORT || 4000; |
5 | const axios = require("axios").default; | 5 | const axios = require("axios").default; |
6 | const TOKEN = | 6 | const TOKEN = |
7 | "NYy1k9OM7e/T7PgabnjafdqcxbRc58m7/K4A3kuNCVkoPxhBoZ/Jvg9gaarsqySG2BtvsoQcVgE4yulPaT1WJ7qTUyBaqegae+r8uh0oWrZO93zXIUILn3bOGUFtLmVFcTuBfRKgFHCaJhi1+wFQ6QdB04t89/1O/w1cDnyilFU="; | 7 | "NYy1k9OM7e/T7PgabnjafdqcxbRc58m7/K4A3kuNCVkoPxhBoZ/Jvg9gaarsqySG2BtvsoQcVgE4yulPaT1WJ7qTUyBaqegae+r8uh0oWrZO93zXIUILn3bOGUFtLmVFcTuBfRKgFHCaJhi1+wFQ6QdB04t89/1O/w1cDnyilFU="; |
8 | +const ContentService = require("./services/ContentService"); | ||
8 | 9 | ||
9 | app.use(express.json()); | 10 | app.use(express.json()); |
10 | app.use( | 11 | app.use( |
@@ -70,12 +71,13 @@ const handleEvent = async (event, body) => { | @@ -70,12 +71,13 @@ const handleEvent = async (event, body) => { | ||
70 | 71 | ||
71 | if (event.message.type == "text") { | 72 | if (event.message.type == "text") { |
72 | let selecttext = tolow(event.message.text); | 73 | let selecttext = tolow(event.message.text); |
73 | - let get_text = mockText()[selecttext]; | 74 | + let get_text = ContentService.mockText()[selecttext]; |
74 | if (get_text) { | 75 | if (get_text) { |
75 | template_text = get_text; | 76 | template_text = get_text; |
76 | } | 77 | } |
77 | } else { | 78 | } else { |
78 | template_text.text = "Other Message =>>>" + JSON.stringify(event); | 79 | template_text.text = "Other Message =>>>" + JSON.stringify(event); |
80 | + return; | ||
79 | } | 81 | } |
80 | 82 | ||
81 | console.log("template_text", template_text); | 83 | console.log("template_text", template_text); |
@@ -105,6 +107,21 @@ app.post("/webhook", function (req, res) { | @@ -105,6 +107,21 @@ app.post("/webhook", function (req, res) { | ||
105 | // If the user sends a message to your bot, send a reply message | 107 | // If the user sends a message to your bot, send a reply message |
106 | console.log("req.body.events ::", req.body.events); | 108 | console.log("req.body.events ::", req.body.events); |
107 | 109 | ||
110 | + if (req.body.events[0].type === "postback") { | ||
111 | + const user_id = req.body.events[0].source.userId; | ||
112 | + console.log(req.body.events[0].postback); | ||
113 | + console.log('user_id ::',user_id) | ||
114 | + console.log(req.body.events[0].postback == "Go MORE") | ||
115 | + if (req.body.events[0].postback.data == "Go MORE") { | ||
116 | + console.log('AA') | ||
117 | + sendSWRichMenu(user_id,"richmenu-a9995ce54d06a8c1438ea96bf74c02aa") | ||
118 | + } | ||
119 | + else if (req.body.events[0].postback.data == "GO BACK") { | ||
120 | + console.log('BB') | ||
121 | + sendSWRichMenu(user_id,"richmenu-589b58f237a7042a57a4cf1698895d18") | ||
122 | + } | ||
123 | + } | ||
124 | + | ||
108 | if (req.body.events[0].type === "message") { | 125 | if (req.body.events[0].type === "message") { |
109 | // Message data, must be stringified | 126 | // Message data, must be stringified |
110 | const dataString = JSON.stringify({ | 127 | const dataString = JSON.stringify({ |
@@ -136,6 +153,8 @@ app.post("/webhook", function (req, res) { | @@ -136,6 +153,8 @@ app.post("/webhook", function (req, res) { | ||
136 | body: dataString, | 153 | body: dataString, |
137 | }; | 154 | }; |
138 | 155 | ||
156 | + | ||
157 | + | ||
139 | // Define request | 158 | // Define request |
140 | const request = https.request(webhookOptions, (res) => { | 159 | const request = https.request(webhookOptions, (res) => { |
141 | res.on("data", (d) => { | 160 | res.on("data", (d) => { |
@@ -154,6 +173,22 @@ app.post("/webhook", function (req, res) { | @@ -154,6 +173,22 @@ app.post("/webhook", function (req, res) { | ||
154 | } | 173 | } |
155 | }); | 174 | }); |
156 | 175 | ||
176 | +const sendSWRichMenu = async (user_id,richmenu_id) => { | ||
177 | + // Request header | ||
178 | + const headers = { | ||
179 | + "Content-Type": "application/json", | ||
180 | + Authorization: "Bearer " + TOKEN, | ||
181 | + }; | ||
182 | + | ||
183 | + const URL = `https://api.line.me/v2/bot/user/${user_id}/richmenu/${richmenu_id}`; | ||
184 | + console.log('URL ::',URL); | ||
185 | + let res = await axios.post(URL,{}, { | ||
186 | + headers: headers, | ||
187 | + }).then(res=>{ | ||
188 | + console.log('res ::',res.data); | ||
189 | + }) | ||
190 | +}; | ||
191 | + | ||
157 | app.listen(PORT, () => { | 192 | app.listen(PORT, () => { |
158 | console.log(`Example app listening at http://localhost:${PORT}`); | 193 | console.log(`Example app listening at http://localhost:${PORT}`); |
159 | }); | 194 | }); |
@@ -222,6 +257,13 @@ const mockText = () => { | @@ -222,6 +257,13 @@ const mockText = () => { | ||
222 | label: "Send location", | 257 | label: "Send location", |
223 | }, | 258 | }, |
224 | }, | 259 | }, |
260 | + { | ||
261 | + type: "action", | ||
262 | + action: { | ||
263 | + type: "camera", | ||
264 | + label: "Camera", | ||
265 | + }, | ||
266 | + }, | ||
225 | ], | 267 | ], |
226 | }, | 268 | }, |
227 | }, | 269 | }, |