- ประเด็นคือ ต้องการใช้งาน api เพื่อจัดการ webex meeting โดยไม่ต้องเข้าผ่านระบบ gui ของเค้า
- เข้าไปดูใน document เข้าบอกว่าใช้ token key ในการ ยืนยันตัวตน
- และในระบบทดสอบ เค้าใช้ personal token key ในการทดสอบ api ซึ่ง personal token จะมีอายุแค่ 12 ชั่วโมง เท่านั้น (น่าจะเริ่มนับเวลาจากการ login เข้าระบบเค้านะ)
- ปัญหาคือ จะทำยังไงให้ได้ token key ที่ใช้ได้นานที่สุด หลังจากมั่วอยู่นานก็ได้ token key มาใช้แล้ว แต่อายุเค้าจะอยู่ได้ประมาณ 14 วัน ต้อง refresh token ใหม่
Step
- อย่างแรกเราต้องไปสร้าง integrate app ของเราก่อนโดยเข้าระบบ https://developer.webex.com/
- ซึ่งทั้งหมดที่กล่าวมา เราต้องมี license ใช้งานนะ จึงจะได้ user , pass เข้าระบบเค้าได้
- เลือก Login เข้าสู่ระบบให้เรียบร้อย จากนั้นเลือก Start Building Apps
- จากนั้นเลือก Create an Integration
- จากนั้นใส่รายละเอียดลงไป
- Will this ... mobild SDK? เลือก No
- Integration name ใส่ชื่อ app เราเช่น app2_test
- Icon เลือก ตามค่าเริ่มต้น 1 - 3 หรือจะ upload มาเองก็ได้
- Description ใส่คำอธิบาย app เราลงไปสักหน่อย
- Redirect URL(S) อันนี้ใส่ url ที่เราจะให้มัน redirect กับมาพร้อมกับค่า code ที่เราจะไปใช้ขอ token ต่อ
- Scopes อันนี้น่าจะคล้ายๆ permission เราก็ไม่แน่ใจ จึงเลือกหมดเลย เท่าที่เลือกได้ เช็คให้หมดเลย
- ข้อมูลเรียบร้อยคลิก Add Integration
- จากนั้นจะได้ข้อความ congraturation ประมาณนี้
- สิ่งที่เราจะได้ใช้ต่อคือ client id, client secret และ url ในกรอบสีดำ
- จากนั้นให้เราคัดลอก url ในกรอบสีดำไปวางบน address bar ของ browser เปลี่ยนค่า state สุดท้ายให้
- เป็นประมาณนี้ state=authorization_code ด้วย
- จากนั้น กด enter เพื่อในรัน url ที่เราได้เปลี่ยนค่าตัวแปรแล้ว
- ระบบจะให้ใส่ username, pass ของ webex อีกรอบ ก็ใส่ไป
- เมื่อใส่เรียบร้อย ถ้ามี ขึ้น error โหลดหน้าเว็บไปต่อไม่ได้ ให้เรารอสักครู่ (3 นาที) คัดลอก url ที่เปลี่ยนค่าแล้ว ไปวางบน address bar แล้วรันมันอีกรอบ
- ถ้าทุกอย่างเรียบร้อย มันจะแสดงการขอ สิทธิ์ของ integration app นี้ออกมา กด Accept ซะ
- จากนั้นระบบจะ redirect ไปยังพาธที่เราได้ตั้งไว้ของ integration app พร้อมทั้งส่ง ค่า ?code=xxxx กลับมาให้เราไปใช้ขอ access token ต่อ
- ที่นี้ให้เราใช rest client สักตัว ใส่ ค่าประมาณนี้
- method: POST
- url: https://webexapis.com/v1/access_token
- header: Content-Type: application/json
- body
- grant_type: authorization_code
- client_id: จะแสดงอยู่ใน integration app เรา
- client_secret: จะแสดงอยู่ใน integration app เรา (ครั้งแรกจะแสดง เปิดอีกครั้งจะไม่เห็นแล้ว ต้อง regen มันใหม่)
- code: อันนี้ได้มาจาก step ด้านบนนี้
- redirect_uri: จะแสดงอยู่ใน integration app เรา
- ทุกอย่างโอเคกดรันเลย จะได้ผลลัพท์ประมาณนี้
- สิ่งที่เราจะเอาไปใช้ต่อจากผลลัพธ์ที่ได้มาคือ access_token และ refresh_token บันทึก 2 ค่านี้ไว้ให้ดีนะคับ
- access token นี้มีอายุประมาณ 14 วันนะคับ จาก อ้างอิงนะ
- การนำไปใช้ทดสอบโดย เปิด https://developer.webex.com/docs/platform-introduction
- Documentation -> APIs -> full API Reference -> Meeting -> List Meetings
- ให้เราปิดการใช้งาน Personal Token และใส่ค่า access token ของเราเข้าไปจากนั้นก็ Run สิคับ
- ถ้าด้านล่างเค้าแสดงผลลัพธ์ประมาณนี้
- แสดงว่า access token เรา สร้างสำเร็จและใช้งานได้
Add
- กรณี access token กำลังจะหมดอายุ ให้เราใช้ rest client ประมาณนี้
- คล้ายกับ ตอน get token ใหม่ เปลียน grant_type ใช้เป็น refresh_token
- และสิ่งที่ต้องเพิ่มมาคือ refresh_token อันนี้มันจะมาพร้อมกับตอนเราได้ค่า access token มาตอนแรกคับ
- อีกเรื่องคือ timezone เลือกให้ถูกต้องนะคับ 37) Asia/Bangkok
Ref
- https://developer.webex.com/blog/real-world-walkthrough-of-building-an-oauth-webex-integration
- https://help.webex.com/en-us/article/ly79es/List-of-Time-Zones-for-Webex-Contact-Center