我在 Rails 应用程序中使用 Google Signet Client 来访问 Google API,现在主要是通过 OAuth 1 访问 Provisioning API。Google 刚刚在 Admin SDK 名称下推出了一组新的 API。具体来说,我对Directory API的一个功能感兴趣。不幸的是,Directory API 不断通过 signet 客户端返回“无效凭据”响应。
我的 OAuth 身份验证通过 Google Marketplace 进行,以执行密钥等。以下是代码如何生成客户端的示例:
oauth_args = {
:authorization_uri => "https://www.google.com/accounts/OAuthAuthorizeToken",
:token_credential_uri =>"https://www.google.com/accounts/OAuthGetAccessToken",
:client_credential_key => < google_marketplace_consumer_key >,
:client_credential_secret => < google_marketplace_consumer_secret >
}
client = Signet::OAuth1::Client.new(oauth_args)
client.two_legged = true
client.requestor_id = self.owner.email
client.get(:uri=>'https://www.googleapis.com/admin/directory/v1/users?key=<api key>&domain=< my test domain >')
奇怪的是,这个相同的请求在 OAuth1 操场上工作得很好,使用我在本地环境中使用的相同测试密钥,但每次我点击目录 API 时,我都会得到相同的“无效凭据”。另请注意,除了请求的 URL 之外,这与我用于访问 Provisioning API 的代码相同。
任何人都知道为什么这个 API 似乎对客户端或我的身份验证方式有问题?我已为我的帐户启用 API。