คำอธิบายวิธีใช้งาน Google Calendar API ด้วย Service Account (JWT)
(kibua20.tistory.com)อธิบายวิธีการยืนยันตัวตนแบบ Service account โดยใช้ JWT (JSON Web Token) ซึ่งเป็นหนึ่งในวิธีที่ได้รับการรับรองด้วย OAuth 2.0 เพื่อใช้งาน Google API รวมถึงวิธีดึง calendar event ของบัญชีผู้ใช้ผ่าน Google Calendar API
หากต้องการใช้ Service Account ต้องดำเนินการ 5 ขั้นตอนดังนี้
-
สร้าง Service Account ใน Google API console:
- เมื่อสร้าง Service account แล้ว จะได้รับการกำหนด Client ID และ Private Key
-
สร้าง JWT (Json Web Token):
-
เข้ารหัส Header, Claim set และ signature เป็นค่า base64urlsafe
-
ในกรณีของ Python สามารถใช้ PyJWT เพื่อสร้างสตริง JWT ได้
-
-
ส่งคำขอ Token ไปยังเซิร์ฟเวอร์ยืนยันตัวตนของ Google โดยใช้ JWT
-
เซิร์ฟเวอร์ของ Google จะส่ง Access Token กลับมาเป็น response
-
ใช้ Access token เพื่อเรียก Google API
ข้อควรระวังของ Google Calendar API คือ บัญชีผู้ใช้และบัญชีบริการเป็นคนละบัญชีกัน ดังนั้นจึงต้องเพิ่มสิทธิ์การแชร์ของ Service account ใน Google Calendar ของบัญชีผู้ใช้ก่อนจึงจะใช้งานได้ การเรียก Google Calendar API สามารถทำได้ด้วยคำสั่ง curl หรือ Python requests
2 ความคิดเห็น
อืม.. ถ้าจะนำไปใช้กับบริการจริง ก็คงต้องทำ UX ให้ผู้ใช้แชร์ปฏิทินได้ด้วยสินะ แต่จะทำได้ไหมนะ?
เนื่องจากต้องแชร์ปฏิทินจากบัญชีผู้ใช้ ดูเหมือนว่า OAuth2 client จะเหมาะสมมากกว่า JWT
นี่คือตัวอย่างของ Gmail ที่ทำด้วย OAuth2
https://kibua20.tistory.com/m/70