gpt4 book ai didi

php - Google Calendar API服务帐户错误

转载 作者:行者123 更新时间:2023-12-03 15:27:41 24 4
gpt4 key购买 nike

我收到这个错误

{ "error": 
{ "errors":
[
{ "domain": "calendar", "reason": "forbiddenForServiceAccounts", "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." }
],
"code": 403,
"message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority."
}
}

已经关注了
https://developers.google.com/admin-sdk/directory/v1/guides/delegation

我正在使用该库并在laravel 5.7上运行它: https://github.com/spatie/laravel-google-calendar

什么可能是解决此问题的方法。请帮忙。

最佳答案

以下是完成这项工作的步骤:
在服务帐户中启用域范围委派
1-为您的服务帐户提供日历范围

  • 转到https://admin.google.com/并使用G Suite帐户登录。
  • 转到安全性-> API控件->全域委派
  • 添加新=>设置服务帐户的客户ID(唯一的数字)
  • 设置以下范围:https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events,https://www.googleapis.com/auth/admin.directory.resource.calendar

  • 2-您的用户需要具有服务帐户 token 创建者角色
  • 转到https://console.cloud.google.com/iam-admin,然后转到
  • 选择您的项目,然后转到左侧菜单中的IAM。
  • 选择将用于模拟
  • 的帐户
  • 单击编辑
  • 添加角色服务帐户 token 创建者
  • 根据https://developers.google.com/admin-sdk/directory/v1/guides/delegation启用帐户的域委派,要启用G Suite域范围委派,请执行以下步骤。

  • 3-在要模拟的帐户中创建一个日历
    服务帐户没有日历,因此您必须创建自己的日历
  • 使用要拥有日历的电子邮件登录https://calendar.google.com/(我使用了另一个帐户,与我要模拟的帐户不同,也许可以使用模拟帐户中的日历来工作)
  • 创建日历
  • 与具有修改和管理日历权限的服务帐户共享日历
  • 与您要模拟和修改日历的帐户共享日历

  • 创建Google客户端
  • 验证您的服务帐户。 (我使用了JSON key ,因此不确定是否其他身份验证可用于此目的)

  • 代码示例:(我使用过PHP,但是我认为其他语言非常相似,因此您可以以此为指导)
    请注意,为IMPERSONALIZATION使用一些电子邮件至关重要。否则,将保留403错误,将其用于身份验证,有关详细信息,请参见Maksym Kalin响应。
    $google_client = new Google_Client();
    $google_client->setAuthConfig($LOCATION_OF_JSON_KEY);
    $google_client->setAccessType( 'offline' );
    $google_client->setSubject('EmailToImpersonate@SomeAddress.com');
    $google_client->setApplicationName("YourApplicationName");
    $google_client->setScopes([\Google_Service_Calendar::CALENDAR, \Google_Service_Calendar::CALENDAR_EVENTS]);

    与邀请的人一起创建事件:)并尽情享受!
    注意:使用这种方法,您可以创建事件并邀请人们参加。请记住G Suite https://support.google.com/a/answer/2905486的限制,因此,如果要创建许多事件,则需要具有带有日历池的服务帐户池。

    关于php - Google Calendar API服务帐户错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60760959/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com