首页 > 解决方案 > 有没有办法邀请组织外的与会者?

问题描述

我已经阅读了谷歌日历 API 文档,但我找不到邀请帐户组织之外的访客的方法,这可能吗?

这是我使用 NodeJS 客户端的代码:

const auth = new google.auth.GoogleAuth({
  keyFile: 'src/google-api/calendar-auth.json',
  scopes: ['https://www.googleapis.com/auth/calendar'],
});

const calendar = google.calendar({ version: 'v3', auth });

calendar.events.insert({
    calendarId: 'email-of-organization',
    sendUpdates: 'all',
    requestBody: {
        start: {
          dateTime: startDate.toISOString(),
          timeZone: 'utc',
        },
        end: {
          dateTime: endDate.toISOString(),
          timeZone: 'utc',
        },
        summary: 'a summary',
        description: 'a description',
        attendees: [{ email: 'email@outside.org' }], // this email is outside my organization
    },
});

错误: Service accounts cannot invite attendees without Domain-Wide Delegation of Authority

即使我设置了域范围委派,错误仍然存​​在。

在此处输入图像描述

标签: google-calendar-api

解决方案


基本上,当您将域范围的权限委派给您的服务帐户时,您授权您的服务帐户代表您域中的用户访问数据。请参阅将域范围的权限委派给服务帐户

一旦你完成了域范围内的授权,你的应用程序现在有权以你域中的用户的身份进行 API 调用(以“模拟”用户)。当您准备进行授权的 API 调用时,您可以指定要模拟的用户。

可以邀请域外的访客(使用您的用户帐户或服务帐户)。您可以选择在邀请域外的访客时警告用户。请参阅在 Google 日历活动中允许外部邀请

我尝试使用我的用户帐户创建一个活动,并使用events.insert添加来自域外的来宾。它已成功创建。因此,如果您让服务帐户模拟您域中的用户,它应该能够创建活动并邀请域外的访客


推荐阅读