在 Google Workspace Business Starter 版本中。
如果我使用模拟用户的服务帐户, 我可以在聊天空间中创建一条消息吗 被冒充的用户是会员,而服务帐户不是会员?
服务帐户电子邮件被视为“组织外部”,并且不被接纳为 GWB Starter 版本中“聊天空间”的成员。
使用 python 的异步应用程序(服务器到服务器):
scopes = [
'https://www.googleapis.com/auth/chat.bot']
credentials = google.oauth2.service_account.Credentials.from_service_account_file(
service_secret_file_path,
scopes=scopes)
delegated_credentials = credentials.with_subject(email)
service.spaces().messages().create().execute()
返回:
invalid_scope: Some requested scopes cannot be shown: [https://www.googleapis.com/auth/chat.bot]
这是否是服务帐户虽然在域范围内委派并代表属于该空间成员的用户但无效的症状?
编辑:服务帐户、委派用户和空间位于同一域和组织中。
虽然服务帐户是在也包含聊天空间的同一个 GWB 帐户中生成的,但它不被接受为空间的成员,因为系统将服务帐户分类为外部主体。
您可以使用域范围委托代表用户行事 https://developers.google.com/workspace/chat/authenticate-authorize-chat-user#domain-wide-delegation
如果您的应用不需要访问用户信息,您还可以将应用添加到聊天空间成员 https://developers.google.com/workspace/chat/create-members#create-membership-calling-api
在这里您可以找到有关端到端流程的更多详细信息 https://developers.google.com/workspace/chat/authenticate-authorize-chat-app