11

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

  • 有没有一种更简单的方法来做我需要的事情来避免所有这些 OAuth 东西?是否有非认证访问方法?

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

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

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

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

谢谢。

4

2 回答 2

5

我觉得你想太多了。如果您只需要访问公共日历上的事件,那么有一种方法可以做到这一点,而无需调用 Google Calendar API 和所有附加的复杂性。每个公共Google 日历都有一个 iCal 供稿,可以在特定 URL 上查看,通常采用以下形式:

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

{OWNER}日历所有者的 URL 编码电子邮件地址在哪里。

您可以通过查看日历设置并滚动到“日历详细信息”选项卡的底部来找到特定的 URL。

于 2012-12-30T18:27:19.907 回答
4

执行此操作的一些提示嵌入在对查尔斯回答的评论中。无论如何,截至 2014 年(使用 Google Calendar v3 API),这就是我所做的:
去这里看看 v3 API 是如何工作的:
https ://developers.google.com/google-apps/calendar/v3/reference/events /list#try-it

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

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

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

现在,您可以根据您的要求自定义此请求 URL,并从您的代码发送常规 GET 请求。

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

于 2014-05-24T06:09:27.050 回答