0

私は Rails アプリで Google Signet Client を使用して Google API にアクセスしていますが、現在は主に OAuth 1 を介して Provisioning API にアクセスしています。具体的にはDirectory APIの機能に興味があります。残念ながら、Directory API は署名クライアントを介して「無効な資格情報」の応答を返し続けます。

私の 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 を除いて、これはプロビジョニング API をヒットするために使用するコードと同じであることにも注意してください。

この API が特にクライアントまたは認証方法に問題があるように見える理由を知っている人はいますか? アカウントの API を有効にしました。

4

1 に答える 1

0

最終的に署名クライアントとは何の関係もありませんでしたが、Google Marketplace のアクセス許可だけが関係していました。「Invalid Credentials」エラーは、より厄介なものでした。Provisioning API を使用して開発されたアプリケーションを新しい API (Admin SDK) に移行するに記載されている手順を行ったところ、機能しました。アプリの API を有効にしましたが、マニフェストを更新していませんでした。

于 2013-05-29T17:44:44.987 に答える