1

Google の「サービス アカウント」認証の oath2 仕様を使用して認証するための json リクエストを作成しようとしています。ここでGoogle のドキュメントを使用しています。JWTを使用しています。C# を使用してこれを行う方法については、あまり情報がないようです。これは私が使用している RAW json リクエストですが、Google から取得できる唯一の応答は「invalid_request」です。

POST https://accounts.google.com/o/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: accounts.google.com
Content-Length: 457
Expect: 100-continue
Connection: Keep-Alive

{
  "grant_type": "assertion",
  "assertion_type": "http://oauth.net/grant_type/jwt/1.0/bearer",
  "assertion": "JWT (including signature)"
}

何が起こっているのかについてのアイデアはありますか? 設定された間隔で Google の緯度の場所に ping を実行する Windows サービスを作成しようとしていますか? このフープを飛び越えずにその API にアクセスする別の方法はありますか? ありがとう!

4

1 に答える 1

1

ドキュメントは、urlencoded文字列をPOSTする必要があることを比較的明確にしています。jsonを投稿する代わりに、application/x-www-form-urlencodedデータを投稿してください。

var invariantPart = "grant_type=assertion&" + 
   "assertion_type=http%3A%2F%2Foauth.net%2Fgrant_type%2Fjwt%2F1.0%2Fbearer&" +
   "assertion=";
var fullPostData = invariantPart + Uri.EscapeDataString(myCalculatedAssertion);
//POST fullPostData to google
于 2012-04-13T00:49:58.597 に答える