0

次の VBA コードを使用して有効な認証トークンを Google API のアクセス トークンと交換すると、「400 Bad Request」エラーが発生します。誰もが理由を明らかにすることができます.私はこれに1週間以上苦労しています.

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
4

3 に答える 3

0

これは非常に一般的な問題です。多くのアプローチとテストを行って解決しようとするかもしれませんが...

最初に試す必要があるのは、次のとおりです。

サーバー/コンピューターの Windows クロックを更新し、time.nist.gov (または兄弟) を使用します。Windows Hour-Date をダブルクリックします (画面の下部にあり、この方法でインターネット時刻を変更します)。

SntsDev

于 2013-02-25T18:23:30.407 に答える
0

VBA で Oauth 2.0 を使用した私の経験では、トークンを要求するためにコードを複数回使用すると、このエラーが発生します。ドキュメントと経験に基づいて使用する使用シーケンスは次のとおりです。 コードを取得するために GET https://accounts.google.com/o/oauth2/auth に 1 回アクセスします POST https://accounts.google.com/o/oauth2にアクセスします/token 一度トークンを取得するため、その後トークンが有効である限り使用します

于 2013-05-14T07:52:47.367 に答える