我想設置谷歌分析API應用程序使用OAuth2離線訪問,我用ASP.NET來發布我的授權代碼換取刷新令牌,但我無法從服務器得到刷新令牌的響應。谷歌分析API - 檢索與OAuth2和ASP.NET的刷新令牌
我已經使用了MSDN文檔中的示例代碼來發布發佈請求,所以我只能假定這是正確的,但是我收到了錯誤消息「遠程服務器返回錯誤:(400) .Net.HttpWebRequest.GetResponse()「:
using System;
using System.IO;
using System.Net;
using System.Text;
WebRequest request = WebRequest.Create ("https://accounts.google.com/o/oauth2/token?code=xxxmyauthorizationcodexxx&client_id=xxxxxxxxx.apps.googleusercontent.com&client_secret=xxxxxxxxxxxx&redirect_uri=https://mysite.com/oauth2callback&grant_type=authorization_code");
request.Method = "POST";
string postData = "code=xxxmyauthorizationcodexxx&client_id=xxxxxxxxx.apps.googleusercontent.com&client_secret=xxxxxxxxxxxx&redirect_uri=https://mysite.com/oauth2callback&grant_type=authorization_code";
byte[] byteArray = Encoding.UTF8.GetBytes (postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write (byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
我已經成功地使用GET方法來獲取授權碼開始,我下面這個文檔:https://developers.google.com/accounts/docs/OAuth2WebServer#handlingtheresponse
我也使用https網站發出請求,我手動刷新我的授權碼過期。有沒有人有這個問題的解決方案?
編輯:對於任何遇到同樣問題的人,首先查看下面的aeijdenberg的回覆,但我的解決方案是,我用於代碼參數的授權碼相當即時過期 - 我一直刷新我的頁面,而沒有請求一個新的。獲取數據只是顯示responseFromServer變量的內容。
謝謝你幫我:) – user1926138