当前位置: 首页 > 知识库问答 >
问题:

使用谷歌日历API和服务帐户创建活动

景宏盛
2023-03-14

因此,我已将服务号设置为域范围的授权,如本文所述执行谷歌办公套件域范围的授权。在谷歌办公套件管理控制台中,我已授权服务号使用OAuth 2.0范围:

https://www.googleapis.com/auth/calendar. 

每次我试图创建一个事件,最终都会出现这个错误

GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "calendar",
"message" : "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority.",
"reason" : "forbiddenForServiceAccounts"
} ],
"message" : "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority."
}
new GoogleCredential.Builder()
      .setTransport(HTTP_TRANSPORT)
      .setJsonFactory(JSON_FACTORY)
      .setServiceAccountId(json.get("client_id").getAsString)
      .setServiceAccountPrivateKeyId(json.get("private_key_id").getAsString)
      .setServiceAccountPrivateKey(getPrivateKeyFromPkcs8(jsonCreds.get("private_key").getAsString))
      .setServiceAccountScopes(SCOPES)
      .build()

这建立了google凭据,不使用模拟,日历与服务号共享。

共有2个答案

柳奇希
2023-03-14

联系的G套房支持和2020年3月2日之后创建的任何服务帐户将不再能够在不使用模拟的情况下邀请客人参加活动。

龚俊捷
2023-03-14

服务帐户是他们自己的用户。他们有自己的谷歌日历账户。

如果您想让服务帐户访问另一个日历,有两种方法。

>

如果你有一个gSuite帐户,那么你可以使用域范围的委托,这将允许服务号模拟另一个用户,然后当服务号创建事件时,事件将由该用户创建。

我希望这能帮你把事情弄清楚一点。

 类似资料:
  • 我正在使用Google. net客户端库来访问谷歌日历应用编程接口。我需要研发创建日历事件并将其发布给用户的应用程序。 这是一个服务器到服务器的应用程序,所以我创建了一个服务帐户,并用它来发送邀请。当从web浏览器提交响应时,创建的与会者对这些事件的响应将被更新,但当来自outlook等任何邮件客户端的响应时,响应将以电子邮件的形式发送给服务帐户电子邮件id(这是一个虚拟电子邮件id)。如何将有效

  • 我收到了这个错误 已经跟踪了https://developers.google.com/admin-sdk/directory/v1/guides/delegation 我使用这个库,并在laravel 5.7:https://github.com/spatie/laravel-google-calendar上运行它 有什么办法可以解决这个问题。请帮忙。

  • 我能够使用服务帐户和谷歌日历API在谷歌日历中创建一个事件,其中项目和服务帐户是在谷歌工作区管理员帐户中创建的,在同一个帐户中,我启用了域范围的委派属性。我还没有创建单独的日历,也没有授予访问服务帐户的权限。如果我在CreateDelegate()中使用我的工作区google帐户,则此事件将在'abc@myworkspace.com对于我添加的每个与会者,“日历”和“创建人”属性也是相同的。 所以

  • 您好,我正在使用服务帐户和添加的与会者创建一个活动。回复正确,但与会者没有收到邀请邮件。该服务账户未与任何谷歌账户链接(共享)。不过,为了登录API控制台,我使用了我的gmail帐户。日历Id被指定为主日历Id。活动将在哪里创建,在服务帐户的日历上还是在我的主日历上?。我在日历上看不到,但回复状态为“已确认”。我更感兴趣的是邀请,而不是最初的活动是在哪里创建的。 任何帮助都将不胜感激!!!

  • 我为我的帐户name@steelkiwi.com(谷歌应用程序)创建了服务帐户,我的应用程序运行良好。然后我为我的个人帐户name@gmail.com创建了服务帐户,为我的应用程序使用这个新的凭据,现在当我试图插入文件时,我得到错误500和下一个文本: HttpError 500请求https://www.googleapis.com/upload/drive/v2/files时?quotause

  • 我正面临着以下问题:我已经创建了一个谷歌服务帐户,现在我正在尝试使用c#对谷歌API和YouTube数据API进行授权API调用。以下是我的示例代码: 代码生成成功,但当我启动程序时,我收到以下错误消息: 系统.IO.File未发现异常:“无法加载文件或程序集”弹跳卡思加密,版本=1.7.4137.9688,区域性=非特定,公钥令牌=a4292a325f69b123“或其依赖项之一。系统找不到指定