Commit f4bbcb63ef640169aa5f8d6876eaee8e59548dba
1 parent
eb28d472
Exists in
master
เพิ่ม ตัวอย่าง action
Showing
4 changed files
with
126 additions
and
8 deletions
Show diff stats
... | ... | @@ -0,0 +1,59 @@ |
1 | +{ | |
2 | + "action": { | |
3 | + "type": "text", | |
4 | + "text": "Hello Quick Reply!", | |
5 | + "quickReply": { | |
6 | + "items": [ | |
7 | + { | |
8 | + "type": "action", | |
9 | + "action": { | |
10 | + "type": "uri", | |
11 | + "label": "Add to Cart", | |
12 | + "uri": "https://developers.line.me" | |
13 | + } | |
14 | + }, | |
15 | + { | |
16 | + "type": "action", | |
17 | + "action": { | |
18 | + "type": "postback", | |
19 | + "label": "Postback", | |
20 | + "data": "action=buy&itemid=123" | |
21 | + } | |
22 | + }, | |
23 | + { | |
24 | + "type": "action", | |
25 | + "action": { | |
26 | + "type": "datetimepicker", | |
27 | + "label": "Datetime Picker", | |
28 | + "data": "storeId=12345", | |
29 | + "mode": "datetime", | |
30 | + "initial": "2018-09-11T00:00", | |
31 | + "max": "2018-12-31T23:59", | |
32 | + "min": "2018-01-01T00:00" | |
33 | + } | |
34 | + }, | |
35 | + { | |
36 | + "type": "action", | |
37 | + "action": { | |
38 | + "type": "camera", | |
39 | + "label": "Camera" | |
40 | + } | |
41 | + }, | |
42 | + { | |
43 | + "type": "action", | |
44 | + "action": { | |
45 | + "type": "cameraRoll", | |
46 | + "label": "Gallery" | |
47 | + } | |
48 | + }, | |
49 | + { | |
50 | + "type": "action", | |
51 | + "action": { | |
52 | + "type": "location", | |
53 | + "label": "Location" | |
54 | + } | |
55 | + } | |
56 | + ] | |
57 | + } | |
58 | + } | |
59 | +} | |
0 | 60 | \ No newline at end of file | ... | ... |
index.js
... | ... | @@ -18,12 +18,14 @@ const client = new line.Client(config); |
18 | 18 | const app = express(); |
19 | 19 | |
20 | 20 | // webhook callback |
21 | +let debugMode = false; | |
21 | 22 | app.use("/webhook", line.middleware(config)); |
22 | 23 | app.post("/webhook", (req, res) => { |
23 | 24 | // req.body.events should be an array of events |
24 | 25 | if (!Array.isArray(req.body.events)) { |
25 | 26 | return res.status(500).end(); |
26 | 27 | } |
28 | + console.log('req.body.events !',req.body.events) | |
27 | 29 | // handle events separately |
28 | 30 | Promise.all( |
29 | 31 | req.body.events.map((event) => { |
... | ... | @@ -51,7 +53,7 @@ const handleEvent = (event) => { |
51 | 53 | text: "Hello From PUI", |
52 | 54 | }; |
53 | 55 | |
54 | - if (event.message.type == "text") { | |
56 | + if (event.type == "message" && event.message.type == "text") { | |
55 | 57 | let selecttext = String(event.message.text).toLowerCase(); |
56 | 58 | let get_text = ContentService.mockText()[selecttext]; |
57 | 59 | if (get_text) { |
... | ... | @@ -61,6 +63,8 @@ const handleEvent = (event) => { |
61 | 63 | payload.text = "Other Message =>>>" + JSON.stringify(event); |
62 | 64 | } |
63 | 65 | |
66 | + console.log("SEND TO ==> " + JSON.stringify(payload)); | |
67 | + | |
64 | 68 | return client.replyMessage(event.replyToken, payload); |
65 | 69 | }; |
66 | 70 | |
... | ... | @@ -71,12 +75,14 @@ app.get("/", (req, res) => { |
71 | 75 | |
72 | 76 | app.post("/push", (req, res) => { |
73 | 77 | let body = req.body; |
74 | - let { user_id } = body; | |
78 | + let { user_id, message } = body; | |
75 | 79 | console.log("push =>> body ::", body); |
76 | - let message = { | |
77 | - type: "text", | |
78 | - text: `Push Message! to ${user_id}`, | |
79 | - }; | |
80 | + if (!message) { | |
81 | + message = { | |
82 | + type: "text", | |
83 | + text: `Push Message! to ${user_id}`, | |
84 | + }; | |
85 | + } | |
80 | 86 | client.pushMessage(user_id, message); |
81 | 87 | res.json(message); |
82 | 88 | }); | ... | ... |
services/ContentService.js
1 | - | |
2 | 1 | const flexMsg = require("./flexMsg"); |
2 | +const { action } = require("../exampleMassage/action.json"); | |
3 | 3 | const genMsgContent = flexMsg.GenContentFlex; |
4 | 4 | const flexs = flexMsg.flexs; |
5 | 5 | |
6 | - | |
7 | 6 | const ContentService = { |
8 | 7 | mockText: () => { |
9 | 8 | return { |
... | ... | @@ -16,6 +15,7 @@ const ContentService = { |
16 | 15 | bub4: flexs.bub4, |
17 | 16 | bub5: flexs.bub5, |
18 | 17 | bub6: flexs.bub6, |
18 | + action: action, | |
19 | 19 | }; |
20 | 20 | }, |
21 | 21 | }; | ... | ... |
... | ... | @@ -0,0 +1,53 @@ |
1 | +{ | |
2 | + "type": "flex", | |
3 | + "altText": "GenContentFlex!0", | |
4 | + "contents": { | |
5 | + "type": "bubble", | |
6 | + "direction": "ltr", | |
7 | + "header": { | |
8 | + "type": "box", | |
9 | + "layout": "vertical", | |
10 | + "contents": [ | |
11 | + { | |
12 | + "type": "text", | |
13 | + "text": "Header", | |
14 | + "align": "center", | |
15 | + "contents": [] | |
16 | + } | |
17 | + ] | |
18 | + }, | |
19 | + "hero": { | |
20 | + "type": "image", | |
21 | + "url": "https://1417094351.rsc.cdn77.org/articles/1439/1438984/thumbnail/small.gif?3", | |
22 | + "size": "full", | |
23 | + "aspectRatio": "1.51:1", | |
24 | + "aspectMode": "fit" | |
25 | + }, | |
26 | + "body": { | |
27 | + "type": "box", | |
28 | + "layout": "vertical", | |
29 | + "contents": [ | |
30 | + { | |
31 | + "type": "text", | |
32 | + "text": "Body", | |
33 | + "align": "center", | |
34 | + "contents": [] | |
35 | + } | |
36 | + ] | |
37 | + }, | |
38 | + "footer": { | |
39 | + "type": "box", | |
40 | + "layout": "horizontal", | |
41 | + "contents": [ | |
42 | + { | |
43 | + "type": "button", | |
44 | + "action": { | |
45 | + "type": "uri", | |
46 | + "label": "Button", | |
47 | + "uri": "https://linecorp.com" | |
48 | + } | |
49 | + } | |
50 | + ] | |
51 | + } | |
52 | + } | |
53 | +} | |
0 | 54 | \ No newline at end of file | ... | ... |