首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google权限-服务帐户

Google权限-服务帐户
EN

Stack Overflow用户
提问于 2022-06-25 03:59:35
回答 1查看 315关注 0票数 1

我有一个脚本来修改我的工作提供的GCal。对于身份验证,我使用访问/刷新令牌(如:https://developers.google.com/people/quickstart/python)。

我现在想在码头上运行剧本。对于身份验证,我已经决定使用一个服务帐户。

我已经创建了服务帐户,与它共享了我的日历,并接受了日历。在创建服务帐户的Google控制台中,我将权限设置为"owner“。

当我尝试使用服务帐户(尚未在Docker中)运行脚本时,它只返回每个日历事件的属性子集。我能看到那个accessRole = freeBusyReader

如何授予对此服务帐户的写入访问权限?我试过:

代码语言:javascript
复制
rule = service.acl().get(calendarId="myId", ruleId='user:service@myApp-351310.iam.gserviceaccount.com').execute()  # Get this from acl_items
rule["role"] = "owner"
service.acl().update(calendarId="myId", ruleId="user:service@myApp-351310.iam.gserviceaccount.com", body=rule).execute()

我读过一些关于授权和冒充用户的文章。我不确定这是否有要求。有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-25 14:49:18

验证服务帐户的代码与用于已安装应用程序的示例略有不同,如下所示。

代码语言:javascript
复制
credentials = ServiceAccountCredentials.from_json_keyfile_name(
            key_file_location, scopes=scopes)
credentials = credentials.create_delegated(user_email)

这段视频显示如何创建Google Oauth2服务帐户凭据。只需确保启用Google日历api即可。

记住,服务帐户只能通过向google工作区域上的用户进行域范围的委托来支持。您不能使用标准的google用户。

我推荐遵循将域范围的权限委托给您的服务帐户。示例,它展示了如何从工作区域将委托设置到服务帐户。只需将有关admin sdk的部分更改为google日历的部分,因为这是您要连接的api。

user_Email添加为您希望服务帐户模拟的域上的用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72751156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档