Tuesday, June 28, 2022

Getting the access token OAuth for integration webex for developers

  • ประเด็นคือ ต้องการใช้งาน 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
  • urlhttps://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

Popular Posts