Giải thích cách sử dụng Google Calendar API với Service Account (JWT)
(kibua20.tistory.com)Giải thích phương pháp xác thực Service Account sử dụng JWT (JSON Web Token), một trong các cách xác thực OAuth 2.0 để sử dụng Google API, và cách lấy calendar event của tài khoản người dùng thông qua Google Calendar API.
Để sử dụng Service Account, cần tiến hành 5 bước như dưới đây.
-
Tạo Service Account trong Google API console:
- Khi tạo Service Account, bạn sẽ được cấp Client ID và Private Key.
-
Tạo JWT (Json Web Token):
-
Mã hóa Header, Claim set, signature thành giá trị base64urlsafe.
-
Với Python, có thể dùng PyJWT để tạo chuỗi JWT.
-
-
Dùng JWT để request Token từ máy chủ xác thực của Google.
-
Máy chủ Google sẽ trả về Access Token trong response.
-
Dùng Access Token để gọi Google API.
Điểm cần lưu ý với Google Calendar API là tài khoản người dùng và tài khoản dịch vụ là hai tài khoản riêng biệt, vì vậy cần thêm quyền chia sẻ cho tài khoản dịch vụ trong Google Calendar của tài khoản người dùng. Việc gọi Google Calendar API có thể thực hiện bằng lệnh curl hoặc python requests.
2 bình luận
Ừm.. nếu muốn áp dụng vào dịch vụ thực tế thì có lẽ sẽ phải tạo UX để người dùng chia sẻ lịch, nhưng liệu có khả thi không nhỉ?
Vì cần phải chia sẻ lịch từ tài khoản người dùng nên có vẻ
oautho2 clientphù hợp hơn là JWT.Đây là ví dụ Gmail được triển khai bằng oautho2.
https://kibua20.tistory.com/m/70