Google 日历 API - 插入期间未发出邀请 + 活动在非 gmail 帐户中不可见

Google Calendar API - no invites sent out during insert + event not visible in non-gmail-account

我目前正在从 google-calendar-api (api reference) 中实现插入功能,但在成功创建事件后,它从未出现在非gmail 帐户(例如 ...@icloud.com)。使用 api-explorer 进行测试时也是如此。它只会默默地出现在 gmail 帐户中。

我已将 sendNotifications 设置为 true,将 sendUpdates 设置为 all。没有发出邀请,是的,我已经检查了垃圾邮件目录。我已经在这个问题上坐了几天了,这让我很困惑,这是行不通的。该服务目前无法使用,因为我无法使用非 Gmail 地址添加与会者。

我一直在关注文档,尝试了 api-explorer,还测试了 node.js-library 以及普通的 http-requests。

如前所述,invite/non-gmail-accounts 甚至无法与 api-explorer 一起使用。如何修复此错误?


编辑 1: Typescript中调用对应api的函数。 oAuth2Client 正确初始化。 googleapis 是版本 48.0.0。开始和结束时间是格式正确的字符串,因为事件创建成功但没有通知。

export async function createGoogleCalendarEntry(
  uid: string,
  props: CreateGoogleCalendarEntryProps,
  context: CallableContext
): Promise<CreateCalendarEntryRes<CreateGoogleCalendarEntryRes>> {
  const { title, start, end, attendees, desc } = props;

  const oAuth2Client = await getAuthnAuthzGcpOAuth2ClientFromCallableContext(uid, context, c => c.gcp!);

  return google
    .calendar({ version: "v3", auth: oAuth2Client })
    .events.insert({
      calendarId: "primary",
      sendUpdates: "all",
      sendNotifications: true,
      requestBody: {
        summary: title,
        description: desc,
        start: { dateTime: start },
        end: { dateTime: end },
        attendees: attendees.map(a => ({ email: a.mail }))
      }
    })
    .then(res => ({
      provider: "google",
      externalCalId: res.data.id!,
      meta: res.data as CreateGoogleCalendarEntryRes
    }));
}

这似乎是一个错误!

我使用 Calendars: Events.insert Try this API 功能对此进行了测试并且能够复制它,所以我查看了 Google 的问题跟踪器并且已经有一份报告详细介绍了同类行为:

Google 似乎知道这个问题,但如果它导致问题,你可以提交你自己的错误 here

您还可以点击上述页面左上角问题编号旁边的 ☆,让 Google 知道更多人遇到此问题,因此更有可能更快地看到它。