2012-05-22 82 views
0

使用以下VBA代码在Google API中为访问令牌交换有效的授权令牌时,我收到“400错误请求”错误。任何人都可以阐明为什么,我一直在为这个问题奋斗了一个多星期。Google OAuth2在交换访问令牌时出现错误400

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时钟,使用time.nist .gov(或兄弟)。在Windows小时日期双击(在屏幕的底部,并更改Internet时间以这种方式)

SntsDev

0

您可能需要在Google帐户中设置结算信息。

相关问题