我正在尝试使用admin-sdk构建一个市场应用程序。
阅读文档,就市场应用程序而言,看起来两条腿认证是唯一的方法。
想要检查当前用户是否是管理员,为此,我想使用
https://www.googleapis.com/admin/directory/v1/users/(useremail)?xoauth_requestor_id=(admin-email)
我试图做同样的事情并成为管理员
Authorization标头也如下所示。
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="
当对网址发出此请求时,我收到错误消息。
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
我找了apis来完成它,但是找不到两条腿用admin-sdk。有人可以帮我解决这个问题吗?
也可以使用服务帐户来完成这样的功能吗?
我也想,最后还是将admin-sdk用于golang。
答案 0 :(得分:2)
市场仍然使用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和客户端密钥。此外,您是否还在Admin Console中的管理第三方OAuth中启用了Admin SDK范围的clientID?
我能够毫无问题地拨打以下电话: