使用API​​ V3获取Google日历活动而不使用OAuth

时间:2014-01-15 12:28:02

标签: android google-calendar-api google-oauth

我正在开发一款使用服务来阅读Google日历活动的Android应用。 Google Calendar API v2(已弃用)正在运行(不是所需),现在我正在尝试实施Google Calendar API v3。

我一直关注此示例(http://samples.google-api-java-client.googlecode.com/hg/calendar-android-sample/instructions.html) 但现在我意识到我不需要在这个应用程序中使用OAUTH2.0。 我不想要求应用用户访问其Google日历的权限,我想要显示来自常用日历的日历活动。

在Google Calendar API V2中,我可以像这样使用私人日历网址:

https://www.google.com/calendar/feeds/{EMAIL}/private-{MAGIC-COOKIE}/basic

有人能告诉我是否仍然可以使用相同的日历网址来阅读事件而不使用OAUTH吗?

2 个答案:

答案 0 :(得分:3)

您要找的是服务帐户。通过服务帐户,您可以设置所有用户都将使用的标准日历。它与普通的OAuth不同,用户不会被要求访问自己的帐户。他们将访问您的应用程序帐户。

这是一个可以帮助您入门的链接 https://developers.google.com/accounts/docs/OAuth2ServiceAccount

答案 1 :(得分:0)

使用V3,可以在没有Auth的情况下阅读公共日历上的事件,但是您需要一个API密钥,您必须声明您的站点域。 在浏览器中试用此网址:

https://www.googleapis.com/calendar/v3/calendars/{YOUR AGENDA MAIL}/events?key={YOUR API KEY}

如果您想在2017年1月1日之后参加活动,可以试试这个:

https://www.googleapis.com/calendar/v3/calendars/{YOUR AGENDA MAIL}/events?key={YOUR AP}&maxResults=2500&orderBy=updated&timeMin=2017-01-01T00%3A00%3A00%2B00%3A00&singleEvents=TRUE

maxResults 默认值为250

timeMin 是RFC3339时间戳(网址编码)。在php中你可以像这样生成它:urlencode(date('c'));

此处解释了所有参数:https://developers.google.com/google-apps/calendar/v3/reference/events/list#try-it

注意:如果您不知道如何获取API密钥,可以按照以下向导进行操作:https://console.developers.google.com/flows/enableapi?apiid=calendar