2012-05-22 2 views
0

Я получаю ошибку «400 Bad Request» при использовании следующего кода VBA для обмена действительным токеном авторизации для токена доступа в API Google. Может кто-нибудь пролить свет на то, почему, я боролся с этим один больше недели.Ошибка Google OAuth2 при обмене на токен доступа

Dim http As MSXML2.XMLHTTP 
Dim sUrl As String 
Dim sUrlHeader As String 
Dim svarbody As String 

Set http = New MSXML2.XMLHTTP 

sUrl = "https://accounts.google.com/o/oauth2/token? HTTP/1.1" 

http.Open "POST", sUrl 


http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 

svarbody = "code=4%2FXAjmXiUlBXUAUGCnMvNKsxdyuJEJ.8kfzzrqo3wwTuJJVnL49Cc9gML_lbgI&" & _ 
"client_id=50487549202#-q27v28nvhmjhc0uobq35tjn09lhrh47r.apps.googleusercontent.com&" &   _ 
"redirect_uri=http%3A%2F%2Flocalhost&" & _ 
"scope=https%3A%2F%2Fwww.google.com%2Fcalendar%2Ffeeds&" & _ 
"client_secret=<secret delete for this post>&" & _ 
"grant_type=authorization_code" 

http.send svarbody 

Me.Text3 = http.status & vbCrLf & http.statusText & vbCrLf & http.responseText 
+0

Вы должны действительно искать тело ответа и посмотреть, что он говорит. Это часто дает указание о том, что вызывает ошибку 400. –

ответ

0

Это очень распространенная проблема. Вы можете попытаться решить это делать много подходов и тесты ... но ...

Действительно один вы должны попробовать в первую очередь:

ОБНОВЛЕНИЕ ВАШЕГО СЕРВЕРА/КОМПЬЮТЕРНЫЕ WINDOWS ЧАСЫ, USE time.nist .gov (или братья). Дважды щелкните в вашей Windows, Hour-Date (в нижней части экрана и изменить Интернет Время на этом пути)

SntsDev

0

В моем опыте с использованием OAuth 2.0 в VBA эта ошибка происходит, когда вы используете код более чем один раз для запроса токена. Последовательность использования Я использую на основе документации и опыте: доступа GET https://accounts.google.com/o/oauth2/authраз для адресности Почты доступа с кодовым https://accounts.google.com/o/oauth2/tokenраз для адресности маркеров после этого использовать маркер до тех пор, как он действует

0

Возможно, вам необходимо настроить платежную информацию в своей учетной записи google.

Смежные вопросы