2011-01-04 35 views
6

Tôi đang cố gắng để có được quyền truy cập vào thức ăn chăn nuôi todo của Google với url này:ủy quyền cho Google Danh sách ToDo (authToken, secid)

https://www.google.com/calendar/tdl?secid=<SECID>&tdl={%22action_list%22%3A[{%22action_type%22%3A%22get_all%22%2C%22action_id%22%3A%221%22%2C%22list_id%22%3A%2215052708471047222911%3A0%3A0%22%2C%22get_deleted%22%3Afalse}]%2C%22client_version%22%3A-1}

Nếu tôi mở này trong trình duyệt của tôi với một secid đúng, nó cho tôi thấy đúng những gì tôi muốn.

Bây giờ, câu hỏi đặt ra là: làm thế nào để tôi có được lập trình cứng nhắc (cụ thể, trong một chương trình java)? Tôi có quyền truy cập vào authToken (từ CalendarService), nhưng tôi không biết cách sử dụng nó để cho phép truy cập vào URL ở trên.

Tôi đã cố gắng sử dụng url http://google.com/accounts/ServiceLogin, nhưng tôi không tìm thấy bất kỳ ví dụ nào.

Bất kỳ trợ giúp nào, vui lòng?

Trả lời

1

Từ những gì tôi đọc secid là một ID phiên thu được từ các tập tin cookie của trình duyệt. Trong khi trường hợp của bạn sử dụng Java ngụ ý một ứng dụng máy chủ. Nếu đúng như vậy, bạn muốn bỏ ý tưởng sử dụng hoàn toàn secid.

Thay vào đó, bạn muốn xem Google's OAuth2 documentation. Nếu bạn đang sử dụng Java, rất có thể bạn sẽ quan tâm đến số the web-server OAuth flow. Đặc biệt chú ý đến các sơ đồ trình tự.

Các bước chính bao gồm:

1) Nhận mã ủy quyền từ Google OAuth với sự đồng ý của người dùng. Để làm điều đó, bạn chuyển hướng người dùng đến Google với phạm vi phù hợp. Kiểm tra danh sách calendar scopes cho trường hợp của bạn. Khi người dùng đồng ý, Google sẽ chuyển hướng lại cho bạn bằng mã ủy quyền.

2) Gọi cho Google OAuth bằng mã ủy quyền và thông tin đăng nhập của ứng dụng để trao đổi mã thông báo truy cập.

3) Gọi API lịch của Google bằng mã thông báo truy cập.

Và nếu bạn sử dụng máy khách Java của Google theo đề xuất của @ChaosPredictor, rất có thể một số bước đã được bao bọc trong máy khách Java (và mã của bạn sẽ đơn giản hơn nhiều).

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