【问题标题】:Is it possible to patch the responsestatus of an invitee in google calendar?是否可以在谷歌日历中修补受邀者的响应状态?
【发布时间】:2023-03-24 13:05:02
【问题描述】:

我正在使用谷歌日历 api,我想知道是否可以修补/更新受邀者的响应状态。我能够访问用户的谷歌日历并插入、删除和更新他们的谷歌日历。但我不知道如何更改用户的响应状态。

这是我试图修补事件的 patchdate 函数。

   function patchDate(calendarid, dateFormat) {
        gapi.client.load('calendar', 'v3', function() {                 // load the calendar api (version 3)
            var request = gapi.client.calendar.events.patch({
                'calendarId':       'primary',  // calendar ID
                "eventId": calendarid,      // pass event id
                "sendNotifications": true,
                "resource":         dateFormat      // pass event details with api call
            });

            // handle the response from our api call
            request.execute(function(resp) {
                if(resp.error || resp == false) {
                    console.log("failed to update")
                } else {
                    console.log("successfully updated")
                }
                console.log(resp);
            });
        });
    }

这就是我调用函数的方式。我正在传递要修补的用户电子邮件。谷歌日历活动中有多个电子邮件地址,但我只想更改其中一个。在这种情况下,这将是 example@.com

var dateFormat = {
    "email": 'example@.com',
    "responseStatus": 'accepted'
};
patchDate(tableData[6], dateFormat)

当我尝试修补事件但响应状态没有改变时,我得到了 200 ok 响应。

【问题讨论】:

  • 您是否尝试过来自API documentation 的 Try This 部分。结果一样吗?
  • @Kessy 我认为它的结果相同,但实现方式不同。我使用的实现来自谷歌日历快速入门教程,所以它也应该可以工作。这是我正在使用的完整实现。 developers.google.com/calendar/quickstart/js

标签: javascript google-api google-calendar-api google-apps google-api-js-client


【解决方案1】:

您的dateFormat 对象应该包含在您缺少的"attendees":[] 对象中,因此您的补丁不会被应用。 "resource" 应如下所示:

"resource": {
        "attendees": [
          {
            "responseStatus": "tentative",
            "email": "example@.com"
          }
        ]
      }

您可以将dateFormat 更改为

var newDateFormat = {"attendees":[dateFormat]}

我在这里尝试一下:https://developers.google.com/calendar/v3/reference/events/patch#try-it

【讨论】:

    【解决方案2】:

    如果您查看 event resource 的文档,那么 responseStatus 似乎是可写的。

    您的代码对我来说看起来不错,但如果它不起作用,那么我建议您将问题提交给issue forum

    【讨论】:

    • 我忘了告诉我,我试图以受邀者而不是组织者的身份修补活动。所以基本上我以 example@.com 身份登录并试图在事件中改变我自己的状态。这会影响它为什么不起作用吗?
    • 嗯,它没有给你一个错误,所以我想你已经授权给用户写范围。现在我假设用户有权更改自己的状态。话虽如此,问题是它使用谁的权限进行写访问,我们试图更改其权限的用户或事件的所有者。
    • 我也无法更改被邀请者作为组织者的响应状态。有没有可能用更新而不是补丁来做到这一点?
    • 好吧,我对这一切都很陌生,所以我真的不明白如何在没有大量教程视频的情况下制作它,但我会尝试一下,谢谢。顺便说一句,我还按照您的建议在问题表单上提交了问题。
    • 据我所知,您所做的一切都是正确的,并且文档确实说明了它是可写的。
    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多