0

我在 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。

4

1 回答 1

0

Had nothing to do with the signet client in the end, but just with the Google Marketplace permissions; the 'Invalid Credentials' error was more of a red herring. Did the steps listed at Migrate application developed with the Provisioning API to the new api (Admin SDK) and it worked; I had enabled the API for my app, but hadn't updated the manifest.

于 2013-05-29T17:44:44.987 回答