2012-04-12 2 views
1

Я пытаюсь сформировать запрос json для аутентификации с использованием спецификации oath2 для аутентификации Google Service Account. Я использую документацию Google here. Он использует JWT. Похоже, что информации о том, как это сделать с помощью C#, не так много. Это запрос RAW json, который я использую, но единственным ответом, который я могу получить от google, является «invalid_request».Аутентификация OAuth2 для «Службы 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)" 
} 

Любые идеи о том, что может происходить? Я пытаюсь создать службу Windows, которая связывает местоположения широты google с установленными интервалами? Есть ли еще один способ получить доступ к этому API, не перепрыгивая через этот обруч? Благодаря!

+0

и, очевидно, я заменяющие «JWT (включая подпись)» с моим собственным рассчитывается лексема – aceinthehole

+0

, что не выглядит подобный контент, который соответствует «application/x-www-form-urlencoded». Это Джон. – spender

ответ

1

Документы относительно ясны, что вы должны ПОЧТАТЬ строку с urlencoded. Вместо того чтобы пытаться размещать JSON, после приложения/х-WWW-форм-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 
Смежные вопросы