Một tùy chọn sẽ là gửi email cho người dùng liên kết tới màn hình chấp thuận OAuth 2.0. Người dùng vẫn cần mở liên kết trong trình duyệt, đăng nhập vào tài khoản Google của họ (nếu chưa đăng nhập) và nhấp vào nút "Ủy quyền" để cấp cho ứng dụng của bạn quyền truy cập vào các sự kiện lịch Google của họ.
Trước tiên, bạn cần phải đăng ký ứng dụng của mình dưới dạng Ứng dụng web trong Bảng điều khiển dành cho nhà phát triển của Google (giống như bất kỳ ứng dụng nào khác) và nhận được client_id
. Hãy chắc chắn điền tên của ứng dụng của bạn và liên kết tới trang web của bạn trong phần "Màn hình đồng ý OAuth", bởi vì các giá trị này sẽ được hiển thị cho người dùng của bạn khi họ nhấp vào liên kết ủy quyền.
Sau đó, hãy làm theo các bước sau:
Gửi cho người dùng một liên kết cho phép trong một thông báo e-mail HTML. Các liên kết nên được xây dựng theo hướng dẫn tại "Redirecting to Google's OAuth 2.0 server", và chú ý đến các khía cạnh sau:
- Đảm bảo rằng các
redirect_uri
tham số trong các điểm liên kết ủy quyền cho ứng dụng của bạn.
- Vì bạn đã biết địa chỉ email của người dùng, hãy xem xét bao gồm thông số
login_hint=<email address>
để bỏ qua màn hình lựa chọn tài khoản.
- Quan trọng: cung cấp giá trị trong thông số
state
để bạn có thể liên kết yêu cầu ủy quyền này với người dùng.
- Các liên kết nên được đặt trong một thẻ
<a>
nơi nào đó trong cơ thể của e-mail: <a href="{auth_url}">Allow access to my Google calendar</a>
Khi người dùng nhấp vào liên kết này, trình duyệt của họ sẽ mở ra và hiển thị màn hình có sự đồng ý tiêu chuẩn của Google:
Khi người dùng đã lựa chọn, trình duyệt của họ sẽ được chuyển hướng đến redirect_uri
mà bạn đã cung cấp.
Đảm bảo rằng redirect_uri
sẽ hoạt động ngay cả khi người dùng chưa đăng nhập vào ứng dụng của bạn. Chụp các giá trị state
và authorization_code
mà Google nối vào redirect_uri
và sau đó trả lại trang xác nhận (ví dụ: "Cảm ơn bạn đã cấp cho chúng tôi quyền truy cập vào lịch Google" sẽ là một ý tưởng tốt).
Sử dụng giá trị state
và authorization_code
, tuân theo phần còn lại của luồng OAuth 2.0 chuẩn và truy xuất refresh_token
cho phép bạn truy cập lịch Google của người dùng từ ứng dụng của bạn.
Hãy ghi nhớ rằng chủ sở hữu lịch (người dùng là người nhấn vào liên kết trong e-mail và cấp giấy đồng ý ứng dụng của bạn để truy cập vào lịch) có thể thậm chí không phải là một người sử dụng của ứng dụng của bạn. Đây là lý do tại sao điều quan trọng là cung cấp càng nhiều thông tin càng tốt trên màn hình chấp thuận và trong trang xác nhận.
Vì trang xác nhận của bạn sẽ được tải ngay cả khi người dùng không chấp thuận đơn đăng ký của bạn, bạn có thể cung cấp cho người dùng mô tả đầy đủ về lý do bạn yêu cầu quyền truy cập vào lịch của họ và cung cấp liên kết sẽ đưa họ trở lại màn hình chấp thuận. Điều này sẽ làm tăng tỷ lệ thành công của bạn.
tạo sự kiện trên lịch Google của bạn, thêm địa chỉ email của người dùng làm người tham dự sự kiện có thông báo. người dùng sau đó quyết định xem họ có muốn thêm nó vào lịch của họ hay không. – DaImTo
Không tốt. Tôi muốn xem lịch của người dùng nên tôi không mắc lỗi khi tạo sự kiện xung đột với lịch của người dùng. Hãy nghĩ đến hệ thống thiết lập cuộc hẹn. – StackOverflowNewbie
Nếu bạn muốn xem lịch của họ thì họ cần phải cho phép bạn làm điều đó và bạn sẽ cần phải sử dụng Oauth2 và xác thực chúng. – DaImTo