client.on_present Event นีจ้ ะเกิดขนึ ้ เม่ือมี Microgear ใน Appid เดียวกนั Offline หายไป คา่ ที่ตงั้ callback (function) - จะทางานเมื่อเกิดเหตกุ ารณ์นี ้โดยจะรับคา่ พารามิเตอร์ คอื o gearkey - ระบคุ า่ ของ gearkey ที่เก่ียวข้องกบั เหตกุ ารณ์นี ้def callback_absent(gearkey) : print gearkey+\" become offline.\"client.on_absent = callback_absentclient.on_warning เป็น Event ท่ีเกิดเม่ือมีเหตกุ ารณ์บางอยา่ งเกิดขนึ ้ และมีการเตือนให้ทราบ คา่ ท่ีตงั้ callback (function) - จะทางานเม่ือเกิดเหตกุ ารณ์นี ้โดยจะรับคา่ พารามิเตอร์ คือ o msg - ระบขุ ้อความท่ีเก่ียวข้องกบั เหตกุ ารณ์นี ้def callback_warning(msg) : print msgclient.on_warning = callback_warningclient.on_info เป็น Event ท่ีเกิดมีเหตกุ ารณ์บางอยา่ งเกิดขนึ ้ ขนึ ้ ภายใน Microgear คา่ ท่ีตงั้ callback (function) - จะทางานเม่ือเกิดเหตกุ ารณ์นี ้โดยจะรับคา่ พารามิเตอร์ คือ o msg - ระบขุ ้อความท่ีเก่ียวข้องกบั เหตกุ ารณ์นี ้def callback_info(msg) : print msgclient.on_info = callback_infoclient.on_error Event นีจ้ ะเกิดขนึ ้ เมื่อมี Error คา่ ท่ีตงั้ คูม่ ือการใชง้ าน NETPIE - 151
callback (function) - จะทางานเม่ือเกิดเหตกุ ารณ์นี ้โดยจะรับคา่ พารามิเตอร์ คอื o msg - ระบุ Error ที่เก่ียวข้องกบั เหตกุ ารณ์นี ้def callback_error(msg) : print msgclient.on_error = callback_error6.REST API NETPIE Platform ได้จดั เตรียม REST API สาหรับการติดตอ่ ส่ือสารกบั Microgear ชนดิ อื่นๆ ผา่ นทาง HTTP Protocol ท่ีเข้าถึงได้ง่าย โดยไมย่ ึดติดกบั programming Language หรือ Hardware สามารถนาไปประยกุ ต์ใช้กบั Web Server แบบดงั้ เดมิ หรือเรียกผา่ น Command Line รวมไปถงึ การเชื่อมตอ่ กบัWeb Server ตา่ งๆ 6.1 API ENDPOINT REST API ของ NETPIE ให้บริการอยทู่ ี่ https//:api.netpie.io/ 6.2 AUTHENTICATION ในการเชื่อมตอ่ API Client จะต้องทาการยืนยนั ตวั ตน โดยใช้หนง่ึ ในสองวิธีนี ้ 1. สง่ ผา่ น HTTP Header แบบ Basic Auth โดยใช้Username : KEYPassword : SECRET ตวั อยา่ งการใช้ Basic Auth ด้วย cURL$ curl -X GET \"http://www.domainname.com/resources\" -u key:secret 2. สง่ ผา่ นทาง URL Parameter ในรูปแบบ?auth=KEY:SECRET ตวั อยา่ งการใช้ URL Parameter ด้วย cURL$ curl -X GET \"http://www.domainname.com/resources?auth=key:secret\" คูม่ ือการใชง้ าน NETPIE - 152
6.3 RESOURCE TYPESTopic Topic เป็นจดุ แลกเปลี่ยน Message ระหวา่ ง Microgear ลกั ษณะการเขียนจะอยใู่ นรูปของ Pathเชน่ /home/bedroom/temp โดย Microgear สามารถ PUT/publish, GET/subscribe ไปที่ Topic นีไ้ ด้Microgear Microgear คือ อปุ กรณ์ที่เชื่อมตอ่ กบั NETPIE เราสามารถส่ือสารตรงไปท่ี Microgear โดยอ้างองิช่ือ alias ท่ีตงั้ ให้อปุ รณ์นนั้Postbox Postbox เป็นพืน้ ที่สาหรับเก็บข้อมลู แบบ Queue โดย Message ท่ีถกู สง่ เข้าไปใน Postbox จะถกูเก็บสะสมไว้ จนกวา่ จะมีการอา่ นออกไป Message ที่ถกู อา่ นแล้วจะหายไปจาก Postbox ทนั ทีจงึ เหมาะท่ีจะใช้เป็นเคร่ืองมือสื่อสารกบั Microgear ที่ไมส่ ามารถ Online ได้ตลอดเวลา เชน่ PHP Script 6.3.1 Topic PUT /topic/{appid}/{topic} เขียนข้อความไปยงั Topic ของ Appid ตามท่ีระบุ URL parameter retain สง่ั ให้เก็บคา่ นีไ้ ว้ (เฉพาะคา่ ลา่ สดุ เพียงคา่ เดียว) Body เป็น Message ที่จะสง่ หากต้องการลบคา่ ที่ Retain ไว้ ให้สง่ แบบ Retain และใช้ Body เป็น Stringเปลา่ ตวั อยา่ งการเรียก REST API ด้วย cURL สมมตวิ า่ เราได้สร้าง App บน NETPIE ช่ือ myappid และมี Key และ Secret ดงั นี ้ คูม่ ือการใชง้ าน NETPIE - 153
เราจะใช้ REST API ในการสง่ Message แบบ Retain วา่ ON ไปยงั microgear ท่ีบอกรับ Topic/home/bedroom/light ได้ด้วย cURL command line นี ้$ curl -X PUT\"https://api.netpie.io/topic/myappid/home/bedroom/light?retain\" -d \"ON\" -ujVjzJXaJwdJKHhF:StOAKIZhXB5CaqnIHeb7s1DfiW7mQj GET /topic/{appid}/{topic} อา่ น Message จาก Appid ที่ Topic ตามท่ีระบโุ ดย Client จะได้รับเฉพาะ Message ลา่ สดุ ท่ีถกูRetain ไว้ก่อนหน้านี ้ URL parameter ไมม่ ี Body ไมม่ ี ตวั อยา่ ง$ curl -X GET \"https://api.netpie.io/topic/myappid/home/bedroom/light\" -ujVjzJXaJwdJKHhF:StOAKIZhXB5CaqnIHeb7s1DfiW7mQj 6.3.2 MicrogearPUT /microgear/{appid}/{gearalias}สง่ Message ไปยงั Microgear ที่ตงั้ ชื่อวา่ gearalias ของ Appid ช่ือ appidBody Message ที่จะสง่ เป็น Plain Text String หากมีการเข้ารหสั ด้วยรูปแบบ JSON ทาง ปลายทางจะต้องนา String ไป Parse เอง คูม่ ือการใชง้ าน NETPIE - 154
6.3.3 PostboxPUT /postbox/{appid}/{postboxname}สง่ Message ไปยงั Postbox ช่ือ postboxname ของ Appid ช่ือ appidURL parameter tag ผ้สู ง่ สามารถตดิ Tag ให้ Message ได้ เพื่อความสะดวกในการเลือกอา่ นเฉพาะ Message ท่ีสนใจBody message ท่ีจะสง่ เป็น Plain Text String หากมีการเข้ารหสั ด้วยรูปแบบ JSON ทาง ปลายทางจะต้องนา String ไป Parse เอง$ curl -X PUT \"https://api.netpie.io/postbox/myappid/webbox?tag=error\" -d\"ON\" -u jVjzJXaJwdJKHhF:StOAKIZhXB5CaqnIHeb7s1DfiW7mQjGET /postbox/{appid}/{postboxname}อา่ น Message ครัง้ ละหนงึ่ ข้อความจาก Postbox ชื่อ postboxname ของ Appid ช่ือ appid โดยจะเรียงตามลาดบั เวลา Message ท่ีเข้ามาก่อน จะถกู อา่ นก่อนURL parameter tag ไมจ่ าเป็นต้องระบุ แตjหากมีการระบุ Tag จะเป็นการเจาะจงอา่ นเฉพาะ Message ท่ี ตดิ Tag นีเ้ทา่ นนั้Body ไมม่ ี$ curl -X GET \"https://api.netpie.io/postbox/myappid/webbox?tag=error\" -ujVjzJXaJwdJKHhF:StOAKIZhXB5CaqnIHeb7s1DfiW7mQj คูม่ ือการใชง้ าน NETPIE - 155
ผู้เขียน 1. พนิตา พงษ์ไพบลู ย์ 2. ชาวีร์ อสิ ริยภทั ร์ 3. กลุ ชาติ มีทรัพย์หลาก 4. เอมอชั นา นริ ันตสขุ รัตน์ 5. เปรมฤดี เอี่ยมสภุ คั กลุ 6. อนนั ท์ ปัญญา 7. ชยั วทิ ย์ แสนทวีสขุ ศนู ย์เทคโนโลยีอเิ ลก็ ทรอนิกส์และคอมพิวเตอร์แหง่ ชาติ สานกั งานพฒั นาวิทยาศาสตร์และเทคโนโลยีแหง่ ชาติ 112 อทุ ยานวิทยาศาสต์ประเทศไทย ถนนพหลโยธิน ตาบลคลองหนงึ่ อาเภอคลองหลวง จงั หวดั ปทมุ ธานี 12120 โทร 02-564-6900 อีเมล [email protected] Website https://netpie.io Facebook Group “NETPIE” https://www.facebook.com/groups/netpie/ Github “netpieio” https://github.com/netpieio คูม่ ือการใชง้ าน NETPIE - 156
Search
Read the Text Version
- 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
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156