2016-07-08 22 views
0

GoogleドライブAPIにOAuth用のC++(Visual Studio)でUWPアプリケーションを作成しようとしていました。 Githubの下でこのプロジェクトのメモを参照しました。 - https://github.com/googlesamples/oauth-apps-for-windows/blob/master/OAuthUniversalApp/README.mdUWP OAuth google C++

私はGoogleから認証コードを取得できました。

https://googleapis.com/oauth2/v4/token?code=XXXXXXX#&client_id=ZZZZZZ&client_secret=YYYYYY&redirect_uri=uwapp.testgoogleoauth:/oauth2redirect&grant_type=authorization_code

で述べたノートで行く - 私はトークンその後、認証を要求する認証コードを使用する場合しかし、それは私に404

マイ認証トークンのリクエストURIは次のようになり、エラーを投げていますiOSアプリケーションタイプを使用してクライアントIDを作成しました。しかし、私はそのステップでクライアントの秘密鍵を取得しませんでした。私は明示的にiOSアプリケーションタイプのクライアント秘密鍵を生成しなければなりませんでした。

Authorizationトークン要求のために送信されたリクエストURIに問題はありますか? GoogleのコンソールでクライアントのタイプがiOSとして選択されている場合に使用するclient_secretの値は何ですか。

おかげで、 /ヴィカス

答えて

0

あなたはURIが認証トークンを要求するために送信される要求に見るすべての問題はありますか?

あなたがhttps://googleapis.com/oauth2/v4/tokenを使用しているURIを要求して。しかし、トークン要求をするために、正しいトークンエンドポイントは、次のようになります。

https://www.googleapis.com/oauth2/v4/token

そして、これはあなたが404 (Not Found)エラーを取得する理由です。

GoogleのコンソールでクライアントのタイプがiOSとして選択されている場合、使用するclient_secretの値は何ですか。

Handling the response and exchanging the codeでは、我々は見つけることができる

client_secretあなたはAPIコンソール(アンドロイド、iOSのやChromeアプリケーションとして登録されているクライアントには適用されません)から取得したクライアントシークレット。

iOSクライアントの場合、クライアントIDを使用する必要はありません。 UWPはiOSに似ているため、UWPでこのフィールドを無視することもできます。

完全な認証トークン要求は次のようになります。

POST /oauth2/v4/token HTTP/1.1 
Host: www.googleapis.com 
Content-Type: application/x-www-form-urlencoded 

code=XXXXXX& 
client_id=ZZZZZZ& 
redirect_uri=uwapp.testgoogleoauth:/oauth2redirect& 
grant_type=authorization_code 
+0

をあなたにより示唆されるように、私は変更を自分のプロジェクトを試してみました。 https://www.googleapis.com/oauth2/v4/token?code=4/z6KaGnF5kNvW7SwwuIcnIz8RBMh8PDUPLEXvd70Xn28#&client_id=540870778118-7ndj7unhfqhbdtgpfj35ensavmdmnor3.apps.googleusercontent.com&redirect_uri=uwapp.testgoogleoauth:/oauth2redirect&grant_type - 今、認証トークンのフェッチのための私のURLは次のようになります= authorization_codeしかし、私は404という同じエラーが発生しています。 – Vikas

+0

@Vikasこのリクエストは投稿リクエストです。このリクエストは[HttpClient.PostAsync method](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.web.http)で設定できます。 .httpclient.postasync.aspx)。 [Request Maker](http://requestmaker.com/)でリクエストをテストすると、「400 Bad Request」と「error_description」が取得されました:「コードはすでに償還されました。私はあなたの認証コードが使用されているので、これが正しい応答だと思います。 –

+0

ありがとう、ジェイ。あなたが説明したように、私は変更を行い、問題は解決されました。私は認証トークンと共にコールからの応答を得ることができます。 – Vikas