谷歌日历 API 查看/编辑房间/资源?

Posted

技术标签:

【中文标题】谷歌日历 API 查看/编辑房间/资源?【英文标题】:Google Calendar API view / edit rooms / resources? 【发布时间】:2012-12-06 05:31:58 【问题描述】:

在通过 API 检索会议时,Google Calendar API 是否可以通过某种方式查看已预订的房间?

还有没有办法通过日历 API 将房间资源添加到会议中?

【问题讨论】:

+1 请发布您的代码的可管理版本 【参考方案1】:

我刚刚尝试过 - 它工作正常(返回每个资源 ID 的预订日期数组,最终如果该数组为空 - 资源可供您使用。我想获取布尔值,但仍然......)

所以,你需要使用API。

    去部分试试吧

    使用 oauth 登录

    在下方粘贴请求(将资源 ID 替换为现有)

请求代码:


    "maxResults": 10,
    "timeMin": "2013-11-27T00:00:00+02:00",
    "timeMax": "2013-12-27T23:59:59+02:00",
    "items": [
        
            "id": "RESOURCE_ID_1@resource.calendar.google.com"
        ,
        
            "id": "RESOURCE_ID_2@resource.calendar.google.com"
        ,
        
            "id": "RESOURCE_ID_3@resource.calendar.google.com"
        
    ]

【讨论】:

【参考方案2】:

您在 Google 日历中使用资源这一事实表明您是 Google Apps for Business/Education 用户。

如果您需要组织中的资源列表,您需要使用 Google Apps Calendar Resource API。您还可以使用此 API 创建新资源。

如果您想列出日历资源的可用性,您需要使用 Google Calendar API。您需要使用具有查看资源日历的适当权限的用户名查询 API。日历资源的 ID 类似于以 @resource.calendar.google.com

结尾的电子邮件地址

您还会注意到您的活动参与者中列出了资源。


现在是坏消息

在撰写本文时(2013 年 10 月),Google Apps 日历资源 API 使用 Atom/OAuth 1.0a,而 Google 日历 API 第 3 版使用 JSON/OAuth 2.0。

这意味着你目前需要实现两种不同的身份验证机制和两种不同风格的 API,有趣吧?

也就是说,由于 Google 正在弃用对 OAuth 1.0a 的支持,我确信他们正在努力重新编写 Google Apps 日历资源 API 以使其与 JSON/OAuth 2.0 兼容(我可能会在此处发布一个问题来询问这个问题!)。

更新

有关 Google Apps 日历资源 API 生命周期的信息,请参阅我的问题:

Google Apps Calendar Resource API v1 (Atom/OAuth 1.0) likely lifespan?

【讨论】:

如何从开发者控制台启用日历资源 API?我没有看到它列出 我会担心使用它编写任何新的东西,因为它似乎有一个有限的生命周期——也就是说我相信它是 Admin SDK 的一部分。 developers.google.com/admin-sdk/calendar-resource。另请注意,它仅适用于 Google Apps for Business 和 Education 域。 经过更多挖掘,API 使用现已弃用的 OAuth 1.0 developers.google.com/accounts/docs/OAuth_ref,因此可能不需要在开发人员控制台中启用(它需要 OAuth 域密钥)。 API的访问范围是“apps-apis.google.com/a/feeds/calendar/resource” 当我点击 OAuth 1.0 链接时,页面显示它已被弃用,我们应该迁移到 OAuth 2.0。相当混乱。我的应用需要 Resource 功能,所以我必须硬着头皮去实现它。我尝试过使用 OAuth 2.0,但它不起作用 (***.com/questions/27755951/…),所以我现在将尝试 OAuth 1.0。叹息【参考方案3】:

您是否尝试过查询资源的忙/闲信息(https://developers.google.com/google-apps/calendar/v3/reference/freebusy/query)?

您可以通过更新活动将会议室资源更新为会议 (https://developers.google.com/google-apps/calendar/v3/reference/events/update)。

希望这能给你一些好主意。

【讨论】:

从文档看来,查询仅针对日历而不针对资源 @Emily,我看不到您在发布的更新链接中添加房间资源的位置。你能详细说明一下吗? 在事件资源中,有一个字段资源。如果您尝试获取已预订房间的活动,您会看到如下内容: "resource": true, "displayName": "Room-17", "email": "domain_52d353238@resource.calendar.google。 com", "responseStatus": "已接受"

以上是关于谷歌日历 API 查看/编辑房间/资源?的主要内容,如果未能解决你的问题,请参考以下文章

如何从单个谷歌帐户的多个谷歌日历中获取所有事件?

谷歌日历 API 从谷歌日历设置中获取工作时间数据

资源规范和代理跟踪

访问资源邮箱时出错:“该值”已存在于集合中“

如何使用 android 使用日历 API 在谷歌日历上添加事件?

谷歌日历 API:“你需要有这个日历的作者权限。”