Google Calendar API for PHP简单只读请求,用于获取日历事件

时间:2012-12-29 23:25:37

标签: php oauth-2.0 google-calendar-api

我想为网站编写一些简单的PHP代码,使用Google的日历API V3获取对公共Google日历事件列表的只读访问权限。我只需要在网页上显示日历中即将发生的事件列表。我已经阅读了开发人员文档并查看了getting started sectionget events example code,但我有点困惑。我想知道:

  • 有没有更简单的方法来做我需要的东西,避免所有这些OAuth的东西?是否有未经过身份验证的访问方法?

  • 如果没有,看起来我需要在code.google.com/apis/console/上为我的应用设置访问权限,然后生成ApplicationName,ClientID,ClientSecret,RedirectURI和DeveloperKey。 ApplicationName DeveloperKey 非常简单,可以在Google控制台中找到。但是对于我需要创建OAuth 2.0 ClientID的其他项目,这需要我选择应用程序类型是Web应用程序还是服务帐户。我的情景应该是什么?在这种情况下,不需要用户登录,因为我没有请求访问他们的日历 - 这只是我需要访问的公共日历。

  • 什么是重定向URI以及如何使用它。我该如何设置?

  • Google的API示例获取并缓存会话数据中的访问令牌。然后代码注释说不要这样做,你应该使用数据库。真的吗?我真的需要处理缓存访问令牌吗?如果是这样,Google API中是否有内置的数据库缓存机制,或者您如何处理?

我真的在寻找一种更简单的方法。欢迎您的指导!

感谢。

2 个答案:

答案 0 :(得分:3)

我认为你过分思考这一点。如果您只需要访问公共日历上的活动,那么就可以在不调用Google Calendar API和所有附加复杂性的情况下执行此操作。每个公共 Google日历都有一个可以在特定网址查看的iCal Feed,通常采用以下形式:

http://www.google.com/calendar/ical/{OWNER}/public/basic.ics

其中{OWNER}是日历所有者的URL编码电子邮件地址。

您可以通过查看日历设置并滚动到“日历详细信息”标签的底部来查找特定网址。

答案 1 :(得分:3)

有关这方面的一些提示已嵌入查尔斯的评论中。回答。无论如何,截至2014年(使用Google Calendar v3 API),这就是我所做的:
转到此处查看v3 API的工作原理:
https://developers.google.com/google-apps/calendar/v3/reference/events/list#try-it

在上述链接中提供的演示网络表单中至少填写以下三个字段:
calendarId:日历所有者的URL编码电子邮件地址 timeMax:结束时间
timeMin:开始时间
(使用此时间格式:2014-05-04T00:00:00-00:00(Y-m-d T毫秒 - 偏移量))

您将看到以下REQUEST被发送出去。

GET https://www.googleapis.com/calendar/v3/calendars/{CALENDER_ID}/events?timeMax={start_time}&timeMin={end_time}&key={YOUR_API_KEY}

现在,您可以根据需求自定义此请求网址,并从代码中发送常规GET请求。

P.S - 要获取API密钥,请按照以下步骤操作:
https://developers.google.com/google-apps/calendar/auth