谷歌管理员目录插入用户

时间:2017-05-25 10:32:24

标签: ruby-on-rails google-app-engine ruby-on-rails-4 google-api google-admin-sdk

我正在尝试通过https://www.googleapis.com/auth/admin.directory.user插入用户帐户。我使用以下gem 'google-api-client', '0.11.1'

我启用了以下功能, 1,启用api访问 2,服务帐户域范围授权完成 3,授权此服务帐户客户端ID的范围URL

代码适用于其他域,但对于其他帐户,它会抛出错误。

{
 "error": "unauthorized_client",
 "error_description": "Client is unauthorized to retrieve access tokens using this method."
}

代码:

SCOPES = ['https://www.googleapis.com/auth/admin.directory.user'
, 'https://www.googleapis.com/auth/admin.directory.group.readonly']
    ENV['GOOGLE_APPLICATION_CREDENTIALS'] = 'expa-email-c2938bce41f9.json'
 service = Google::Apis::AdminDirectoryV1::DirectoryService.new
  authorization = Google::Auth.get_application_default(SCOPES)
  authorization.sub = user_email
  authorization.fetch_access_token!
  service.authorization = authorization
  service

1 个答案:

答案 0 :(得分:0)

基于此thread,服务帐户是虚拟用户。要使服务帐户能够访问您的帐户,需要预先授权。您可以像对待任何其他用户一样授权服务帐户。您可以查看此sample code

补充参考: