我想为网站编写一些简单的PHP代码,使用Google的日历API V3获取对公共Google日历事件列表的只读访问权限。我只需要在网页上显示日历中即将发生的事件列表。我已经阅读了开发人员文档并查看了getting started section和get 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中是否有内置的数据库缓存机制,或者您如何处理?
我真的在寻找一种更简单的方法。欢迎您的指导!
感谢。
答案 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