Ich versuche, den Autorisierungscode für ein Zugriffs-Token auszutauschen. Ich bin mit dem HttpClient
in ASP.NET, um eine Post-Anforderung zu machen:Ungültige grant_type youtube api
var clientId = "clientid";
var redirectUri = "http://localhost:65148/Welcome";
var clientSecret = "clientsecret";
if (code != null)
{
//Lets exchange the code for a access token
using (var client = new HttpClient())
{
var values = new Dictionary<string, string>
{
{ "code", code },
{ "client_id", clientId },
{ "client_secret", clientSecret },
{ "redirect_uri", redirectUri },
{ "grant_type", code }
};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("https://accounts.google.com/o/oauth2/token", content);
var responseString = await response.Content.ReadAsStringAsync();
var value = Json(new { data = responseString });
return value;
}
}
Aber wenn ich diese laufen, erhalte ich eine Fehlermeldung:
{
"error" : "invalid_request",
"error_description" : "Invalid grant_type:4/AlxtyFqHeOiTC32THJgipkUWtHBO27GqFfgOoOCG9wE"
}
Ich weiß nicht, warum ich Ich bekomme das. Wer kann mir helfen?
Was ist der Wert der Codevariablen? (das entspricht Ihrem Parameter 'grant_type', der normalerweise auf 'password' gesetzt ist) – user1821052
@ user1821052: Überprüfen Sie meine Fehlermeldung. Nach grant_type: Sie haben den Code. – Bryan
ok Ich sehe - sieht so aus, als würden Sie den Variablencode sowohl auf "code" als auch auf "grant_type" setzen. Versuchen Sie, "grant_type" auf die Zeichenfolge "password" zu setzen. – user1821052