oauth - 带有市场的 Admin-sdk 不起作用

标签 oauth go google-admin-sdk google-apps-marketplace 2-legged

我试图使用 admin-sdk 构建一个市场应用程序。

阅读文档,看起来两条腿的身份验证是市场应用程序关注的唯一方法。

想检查当前用户是否是管理员,因此我想使用

https://www.googleapis.com/admin/directory/v1/users/(useremail)?xoauth_requestor_id=(admin-email)

我试图保持相同并成为管理员

授权 header 也如下。

OAuth realm="", oauth_signature_method="HMAC-SHA1", 
oauth_version="1.0", oauth_consumer_key="<key from market place>",
oauth_nonce="4473365854789985180", oauth_timestamp="1380453874",
scope="https://www.googleapis.com/auth/admin.directory.user", 
oauth_signature="yEcbWIp5f1nNFaUI8vSxn1NYlzw="

当向 url 发出此请求时,我收到错误消息。

"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"

我寻找 api 来完成它,但找不到带有 admin-sdk 的两条腿。有人可以帮我解决这个问题吗?

这样的功能也可以通过使用服务帐户来完成吗?

我也想,最后有admin-sdk可以用golang。

最佳答案

Marketplace 仍使用 OAuth 1.0。所以我认为你不能真正使用服务帐户,因为它确实适用于 OAuth 2.0。

您检查过这两个文件吗? https://developers.google.com/accounts/docs/OAuth#GoogleAppsOAuth https://developers.google.com/gdata/docs/auth/oauth#2LeggedOAuth

无论如何,您要确保使用的是从 API 控制台生成的启用了 Admin SDK 的 clientID 和客户端 key 。此外,您是否还通过管理控制台中的管理第三方 OAuth 中的 Admin SDK 范围启用了 clientID?

我能够毫无问题地进行以下调用:

https://www.googleapis.com/admin/directory/v1/users/[email protected][email protected]&key=APIkey_from_API_console

关于oauth - 带有市场的 Admin-sdk 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19077645/

相关文章:

rest - 在 GET URL 中指定 OAuth token

go - 文件夹中没有可构建的 Go 源文件

go - Go 中的猴子修补实例

python-3.x - GCP-The App Engine APIs are not available, with py 3

google-admin-sdk - 管理员如何访问特定域中所有用户的 Google Drive 内容?

apache - 客户端凭据授予类型未与 Apache Oltu 客户端库一起正确发送?

oauth-2.0 - 如何使用 OIDC/OAuth 保护 API

ruby-on-rails - 为什么用户必须输入 7 位数的 Twitter PIN 才能授予我的应用程序访问权限?

go - 如何仅在golang中有请求时才打开数据库连接

javascript - Google Shared Contacts API 更新公司范围内的联系人目录