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

时间:2011-01-04 18:36:39

标签: 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,但我没有找到任何示例。

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

根据我的阅读secid,是从浏览器的Cookie中获取的会话ID。而您的案例使用的Java意味着服务器应用程序。如果是这种情况,您想放弃完全使用secid的想法。

相反,您想查看Google's OAuth2 documentation。如果您使用的是Java,那么您很可能对the web-server OAuth flow感兴趣。特别注意序列图。

关键步骤包括:

1)经用户同意,从Google OAuth获取授权码。为此,您可以使用适当的范围将用户重定向到Google。查看calendar scopes的列表以了解您的情况。用户同意后,Google会使用授权码重定向回给您。

2)使用授权码和您应用的凭据调用Google OAuth,以换取访问令牌。

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

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