ลองเล่น Webex Bot จาก Cisco Webex กันเถอะ

Pao Payungsak Klinchampa
PAOCLOUD CO., LTD.
Published in
3 min readOct 5, 2020

--

สวัสดีทุกท่านนะครับในบทความนี้ เราจะทดลองเขียนโปรเกรมเพื่อเรียกใช้ API ส่งข้อความเข้าหา Webex Team แต่ก่อนอื่นนั้น มาทำความรู้จัก Webex กันก่อนว่ามันคืออะไร ???

Ref : https://www.webex.com

สำหรับ Webex นั้น เป็น Collaboration จาก Cisco ครับ แปลเป็นไทยก็คือเครื่องมือที่ใช้ในการทำงาร่วมกัน ซึ่งก็ประกอบไปด้วย Webex Meeting ใช้ในการประชุม จัดสัมนา ใช้ในการเรียนการสอนก็ได้ Webex team อันนี้เป็นโปรเเกรมเพื่อใช้ในการพูดคุย แชทกันภายในองค์กร หรือจะคุยกับคนอื่นนอกองค์กรก็ได้ แถมยังเรียกใช้ Application ตัวอื่นๆได้อีก เช่น OneDrive นอกจากนี้ก็ยังมีพวก Hardware ครับ เช่น RoomKit , DX80 อะไรพวกนี้ ถ้าสนใจก็ลองหารายละเอียดอ่านได้ครับ

และสำหรับ Webex เอง ทาง Cisco ก็เปิด API ให้ Developer เข้ามาใช้กันครับ เราสามารถยิงคำสั่งเข้ามาเพื่อสั่งสร้าง Schedule ในการประชุมได้ แต่ในที่นี้ เราจะโฟกัสไปที่ Webex Team ครับ

ซึ่ง Webex Team เอง มันเป็นเครื่องมือที่ใช้ติดต่อสื่อสารกัน ใช้เเชทกันในองค์กรอะไรแบบนี้ ซึ่งนอกจากใช้เเชทกับคน มันยังใช้แชทกับ Bot ได้ครับ ในบทความนี้ เราจะมาเล่น Bot กัน และทดลองเขียน Code เพื่อยิงข้อความเข้า Chat Room ครับผม

อันดับแรก เราก็ต้องมี Webex ใช้กันก่อนนะครับ สามารถสมัคร Subscription ได้ผ่านทางหน้าเว็บได้เลย

จากนั้นก็ไปที่เว็บนี้ครับ https://developer.webex.com แล้ว Log in ด้วย Webex Account ได้เลย เรื่อง Permission ผมยังไม่ชัวร์ว่ามันสร้างได้ทุกคนมั๊ย แต่ของผมใช้ Account ที่เป็น Admin สร้าง ยังไงก็ลองทดสอบดูได้ครับ

หลังจาก Log in ก็จะเจอหน้าเว็บดังภาพด้านล่าง กดที่รูป Profile ของเรา เเล้วเลือก My Webex Apps ได้เลยครับ

จากนั้นกดปุ่ม Create a new app แล้วเลือกครับ ว่าจะสร้าง App แบบไหน ในที่นี้เราจะสร้างแบบ Bot กัน ก็เลือก Bot

จากนั้นก็กรอกรายละเอียดต่างๆได้เลยครับ

เช่น Bot Name , Bot Username , Icon , คำอธิบายอะไรพวกนี้ จากนั้นก็กดปุ่ม Add bot ครับ

ระบบก็จะ Generate Token ให้ เราก็ Copy ไปเก็บไว้ได้เลยครับ ระบบจะเเสดงให้เห็นเเค่ครั้งเดียว ถ้าเราลืมเก็บไว้ ก็ต้องเข้ามากดปุ่ม Regenerate ใหม่ ตรงนี้ก็เพื่อความปลอดภัยนั่นเอง

ในภาพด้านล่าง เป็น Bot ที่ผมใช้อยู่ ก้จะเเสดงรายละเอียดต่างๆที่เรากรอกเอาไว้ จะเเก้ไขก็ได้ครับ

ตอนนี้เรามี Token เเล้ว เราก็ต้องลองเล่นดู ไปที่เว็บ https://developer.webex.com/docs/platform-introduction ซึ่งเป็น API Document ครับ

จากนั้นคลิกที่ API Reference ดู เราก็จะเห็นว่า API นี้จะเอาไปทำอะไรได้บ้าง ก็ลองอ่านรายละเอียดเเล้วลองเล่นได้ ผ่านทางหน้าเว็บเลยครับ สะดวกไปอีก

แต่ให้ระวังตรง Authorization นะครับ กดปิดตรง Use persosonal access token ด้วย แล้วเอา Token ที่ได้จากตอนสร้าง Bot มาใส่เเทน เพราะมันไม่สามารถมองเห็นข้อมูลบางอย่างได้ เพราะถือว่าใช้คนละ token กัน

ลองเล่นดูครับ ถ้าใช้ได้ ก็มี Responce กลับมา ถ้าไม่ได้ ก็มี Error

ต่อไปเราจะลองยิงข้อความเข้าไปยัง Room ที่เรามีอยู่ ก็ให้เปิด Webex Team เข้ามา เเล้วเชิญ Bot เข้าร่วมกลุ่มด้วย โดยการ Add people แล้วพิมพ์ชื่อ Bot ลงไปครับ

อย่างของผม จะเเอดลงกลุ่ม Technical นะ

จากนั้น ก็มาถึงการเขียน Code กันเเล้ว ซึ่งผมจะเขียนเป็น Java Script และใช้ Node.JS แบบง่ายๆในการยิง Request เข้าไป

หน้าตา Code ก็ตามนี้ครับ

ใน Code จะใช้ Axios ยิง Request ออกไปนะครับ ให้แก้ตรง authorization ตรงนี้เอา token จาก webex มาใส่ ส่วน roomId อันนี้ลองยิง api ที่ list room ดูครับ จะได้รายการ room ที่เราสร้างเอาไว้ ส่วนข้อความที่จะส่ง ก็บรรทัดล่างสุดเลยครับ ผมใช้วิธีส่งค่าข้อความเข้าไปยัง Function แล้วใช้ .then เพื่อให้ดึง responce ออกมา เพราะ function มัน return เป็น promise อันนี้ใครสาย JS ก็น่าจะรู้ดี 555+

หากส่งข้อความออกไปได้ ก็จะมี Responce ออกมา ดังภาพด้านล่าง

และเราจะลองเขียนให้ Bot มันตอบโต้กับเราได้กันบ้าง สิ่งที่เราต้องทำก็คือ เข้าไป Add Webhook Endpoint ที่ API ของ Webex แล้วเขียน Webhook Server ขึ้นมาครับ เวลามีข้อความเข้ามาหา Bot เจ้า API ของ Webex ก็จะยิง Request เข้ามาที่ Webhook Server ที่เราเขียนเอาไว้ จากนั้น เราจะทำอะไรต่อ ก็เเล้วเเต่ความสามารถและจินตนาการ (ถ้าติดตามผม จะรู้ว่าผมชอบพูดคำนี้555+)

มีข้อสังเกตนิดนึง ถ้าเราอยากจะอ่านว่า User พิมพ์ข้อความอะไรเข้าไปที่ Bot เราก็ต้องเอา Message ID ยิง GET method ไปถามจาก Webex API ก่อน อันนี้ก็เป็นเรื่องของ Security ครับ ถือว่า Cisco ออกแบบระบมาดีมากๆเลย (ขายของอีกแล้ว55)

สำหรับ Source Code เอาไปเล่นกันได้เลย ที่นี่ครับ ผมเขียนโดยใช้ Nest.js และใช้ Type Script นะ

ในบทความนี้ก็ขอจบสั้นๆเเต่เพียงเท่านี้นะครับ จุดประสงค์ก็เพื่อให้รู้ว่า Webex เองก็มี API ให้เอาไปเล่น เอาไปประยุคต์ใช้ภายในองค์กรของงเราได้ ส่วน Webex ทำอะไรได้อีก ก็ตามอ่าน API Document จาก Webex Developer ได้เลย

แล้วพบกันใหม่ในบทความต่อไป สวัสดีครับ

--

--