授权Google待办事项列表(AuthToken,secid)

Igo*_*gor 6 authentication google-calendar-api google-oauth2

我正在尝试使用此网址访问Google的待办事项:

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}

如果我在浏览器中使用正确的secid打开它,它会向我显示我想要的内容.

现在,问题是:如何以编程方式获取secid(特别是在java程序中)?我可以访问authToken(来自CalendarService),但我不知道如何使用它来授权我访问上面的URL.

我尝试使用网址http://google.com/accounts/ServiceLogin,但我没有找到任何示例.

有什么帮助吗?

neu*_*ite 1

据我所知,secid是从浏览器的cookie中获取的会话ID。而您的案例使用 Java,这意味着服务器应用程序。如果是这样的话,你想完全放弃使用的想法secid

相反,您想查看Google 的 OAuth2 文档。如果您使用 Java,您很可能会对Web 服务器 OAuth 流程感兴趣。特别注意序列图。

关键步骤包括:

1) 经用户同意从Google OAuth获取授权码。为此,您可以将用户重定向到具有适当范围的 Google。检查您的案例的日历范围列表。一旦用户同意,Google 就会将授权码重定向回给您。

2) 使用授权代码和您的应用程序的凭据调用 Google OAuth 以交换访问令牌。

3) 使用访问令牌调用 Google 的日历 API。

如果您按照 @ChaosPredictor 的建议使用 Google 的 Java 客户端,那么很可能某些步骤已经包含在 Java 客户端中(并且您的代码会简单得多)。