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 | 1 | const https = require("https"); |
| 2 | 2 | const express = require("express"); |
| 3 | 3 | const app = express(); |
| 4 | -const PORT = process.env.PORT || 3000; | |
| 4 | +const PORT = process.env.PORT || 4000; | |
| 5 | 5 | const axios = require("axios").default; |
| 6 | 6 | const TOKEN = |
| 7 | 7 | "NYy1k9OM7e/T7PgabnjafdqcxbRc58m7/K4A3kuNCVkoPxhBoZ/Jvg9gaarsqySG2BtvsoQcVgE4yulPaT1WJ7qTUyBaqegae+r8uh0oWrZO93zXIUILn3bOGUFtLmVFcTuBfRKgFHCaJhi1+wFQ6QdB04t89/1O/w1cDnyilFU="; |
| 8 | +const ContentService = require("./services/ContentService"); | |
| 8 | 9 | |
| 9 | 10 | app.use(express.json()); |
| 10 | 11 | app.use( |
| ... | ... | @@ -70,12 +71,13 @@ const handleEvent = async (event, body) => { |
| 70 | 71 | |
| 71 | 72 | if (event.message.type == "text") { |
| 72 | 73 | let selecttext = tolow(event.message.text); |
| 73 | - let get_text = mockText()[selecttext]; | |
| 74 | + let get_text = ContentService.mockText()[selecttext]; | |
| 74 | 75 | if (get_text) { |
| 75 | 76 | template_text = get_text; |
| 76 | 77 | } |
| 77 | 78 | } else { |
| 78 | 79 | template_text.text = "Other Message =>>>" + JSON.stringify(event); |
| 80 | + return; | |
| 79 | 81 | } |
| 80 | 82 | |
| 81 | 83 | console.log("template_text", template_text); |
| ... | ... | @@ -105,6 +107,21 @@ app.post("/webhook", function (req, res) { |
| 105 | 107 | // If the user sends a message to your bot, send a reply message |
| 106 | 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 | 125 | if (req.body.events[0].type === "message") { |
| 109 | 126 | // Message data, must be stringified |
| 110 | 127 | const dataString = JSON.stringify({ |
| ... | ... | @@ -136,6 +153,8 @@ app.post("/webhook", function (req, res) { |
| 136 | 153 | body: dataString, |
| 137 | 154 | }; |
| 138 | 155 | |
| 156 | + | |
| 157 | + | |
| 139 | 158 | // Define request |
| 140 | 159 | const request = https.request(webhookOptions, (res) => { |
| 141 | 160 | res.on("data", (d) => { |
| ... | ... | @@ -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 | 192 | app.listen(PORT, () => { |
| 158 | 193 | console.log(`Example app listening at http://localhost:${PORT}`); |
| 159 | 194 | }); |
| ... | ... | @@ -222,6 +257,13 @@ const mockText = () => { |
| 222 | 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 | }, | ... | ... |