私は 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 を有効にしました。