2015-09-24 24 views
9

Tôi có thể tạo ứng dụng có thể gửi yêu cầu truy cập vào Lịch Google của người dùng để tôi có thể xem các sự kiện trong đó và có thể thêm, chỉnh sửa và xóa sự kiện ?Lịch Google - Quyền truy cập

Tôi không muốn người dùng đăng nhập vào trang web của mình để bật quyền truy cập này. Thay vào đó, tôi muốn có thể gửi yêu cầu này, có thể qua email.

Hoặc, có thể họ có thể đăng nhập vào ứng dụng web và ủy quyền truy cập bằng cách nào đó.

+0

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

+0

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

+1

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

Trả lời

0

Mọi yêu cầu mà ứng dụng của bạn gửi tới API Lịch Google phải bao gồm mã thông báo ủy quyền. Mã thông báo cũng xác định ứng dụng của bạn cho Google.

Ứng dụng của bạn phải sử dụng OAuth 2.0 để cho phép yêu cầu. Không có giao thức ủy quyền nào khác được hỗ trợ . Nếu ứng dụng của bạn sử dụng Đăng nhập bằng Google+, một số khía cạnh ủy quyền sẽ được xử lý cho bạn.

Chi tiết về quy trình ủy quyền hoặc "luồng" cho OAuth 2.0 thay đổi đôi chút tùy thuộc vào loại ứng dụng bạn đang viết.

Để biết thêm chi tiết về quy trình làm việc để truy cập, hãy nhấp vào here. Sau khi ứng dụng của bạn có quyền truy cập, ứng dụng sẽ có thể xem và chỉnh sửa các sự kiện lịch của người dùng, tùy thuộc vào các quyền được phê duyệt.

4

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:

  1. 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>
  2. 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:

    Google OAuth 2.0 consent screen (example) 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.

  3. Đả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ị stateauthorization_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).

  4. Sử dụng giá trị stateauthorization_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.

Các vấn đề liên quan