我正在尝试使用以下网址访问 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 在浏览器中打开它,它会正确显示我想要的内容。
现在,问题是:如何以编程方式(特别是在 Java 程序中)获得 secid?我可以访问 authToken(来自 CalendarService),但我不知道如何使用它来授权我访问上面的 URL。
我尝试使用网址 http://google.com/accounts/ServiceLogin ,但我没有找到任何例子。
请问有什么帮助吗?
最佳答案
从我读到的 secid
是从浏览器的 cookie 中获取的 session ID。而您的案例使用 Java,这意味着服务器应用程序。如果是这种情况,您想放弃使用 secid
的想法。完全。
相反,您想查看 Google's OAuth2 documentation .如果您使用 Java,很可能您会对 the web-server OAuth flow 感兴趣.请特别注意序列图。
关键步骤包括:
1) 在用户同意的情况下,从 Google OAuth 获取授权码。为此,您将用户重定向到具有适当范围的 Google。查看calendar scopes的列表对于你的情况。用户同意后,Google 会使用授权代码重定向回您。
2) 使用授权代码和您的应用程序凭据调用 Google OAuth 以交换访问 token 。
3) 使用访问 token 调用 Google 的日历 API。
如果您按照@ChaosPredictor 的建议使用 Google 的 Java 客户端,那么很可能某些步骤已经包含在 Java 客户端中(并且您的代码会简单得多)。
关于authentication - 授权 Google 待办事项列表 (AuthToken, secid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597102/