Lorsque j'effectue une demande Web simple vers cette URL à l'aide de l'objet WebClient (ou de toute méthode de requête HTTP standard utilisant le framework .NET), j'obtiens une erreur 400 Bad Request Request. Quand j'ai essayé avec CURL, j'obtiens une réponse valide du serveur Web. Il semble que Google n'aime pas une demande de Windows - quelque chose le rejette.Demande incorrecte Obtention d'un jeton d'accès Google
Cela fonctionne dans https://developers.google.com/oauthplayground/ et cela fonctionne aussi si je crée juste un formulaire de Web et fais un poteau - j'obtiens un jeton d'accès dos aucun problème.
Mais j'ai besoin de pouvoir le faire par programmation. J'ai également essayé WebRequest et l'objet HTTP mais je n'ai pas vraiment eu de chance de travailler avec eux.
J'ai trouvé environ 4-5 questions similaires ici et certains d'entre eux ont un exemple de code - j'ai essayé leur code mais je n'ai pas eu de chance. (Code that I have tried)
Fonction GetAccessToken (Code ByVal As String, ByVal sScopes As String) Comme ActionResult Dim sAccessURLTokenURL As String = "https://accounts.google.com/o/oauth2/token"
Dim oWebCLient As New WebClient
Dim oNameValueCollection As New NameValueCollection
Dim oResponse() As Byte
oWebCLient.Headers.Add("Content-type", "application/x-www-form-urlencoded; charset=utf-8")
oNameValueCollection.Add("client_id", "562344623411-b2mt2215qdfs34asdqwe345jmq2ec7su.apps.googleusercontent.com")
oNameValueCollection.Add("client_secret", "KjsPkBUTosdeROuVfkKBaAwm")
oNameValueCollection.Add("code", Code)
oNameValueCollection.Add("scopes", sScopes)
oNameValueCollection.Add("grant_type", "authorization_code")
oResponse = oWebCLient.UploadValues(sAccessURLTokenURL, oNameValueCollection)
End Function
Qu'est-ce que je fais mal ici?
Mettre à jour
nettoiera le code et après avec quelques explications
Si ce sont votre vrai numéro de client et secret, vous devez Rese les ed. –
Merci Eric - ceux-ci ne sont pas réels. Ils sont la même longueur cependant. Bon à regarder, monsieur! –
Très bien! J'ai tendance à voir beaucoup de gens publier des informations sensibles sur SO, l'un des pires endroits pour le faire. –