[英]How to call Google API from .NET/C# Web Application
我正在努力調用Google Cloud中托管的API https://apis-explorer.appspot.com/apis-explorer/?base=https%3A%2F%2Finnovative-glass.appspot.com%2F_ah%2Fapi#p/mirror / v1 /
據我了解,API公開為REST服務。 我需要從.net應用程序進行休息服務調用。
我已經完成了OAuth身份驗證。 我正在按照https://developers.google.com/accounts/docs/OAuth2WebServer給出的指導傳遞access_token
我的代碼:
UriBuilder uriBuilder = new UriBuilder("https://innovative-glass.appspot.com/_ah/api/mirror/v1/timeline");
string userId = Session["userId"] as string;
var state = Utils.GetStoredCredentials(userId);
NameValueCollection queryParameters = HttpUtility.ParseQueryString(uriBuilder.Query);
queryParameters.Set("access_token", state.AccessToken);
uriBuilder.Query = queryParameters.ToString();
var request = (HttpWebRequest)WebRequest.Create(uriBuilder.ToString());
request.Method = "GET";
var response = (HttpWebResponse)request.GetResponse();
我收到未經授權的異常。 我的理解是對的嗎? 我做對了嗎?
似乎雲端點未使用接受access_token
作為查詢參數的Google API默認值。 根據發現文檔 ,等效查詢參數為oauth_token
因此它應適用於:
queryParameters.Set("oauth_token", state.AccessToken);
另外,(我認為這是更好的解決方案),您還可以設置請求的Authorization
標頭,而不是將令牌添加為查詢參數:
request.Headers.Add("Authorization", "Bearer " + state.AccessToken);
您從哪里獲得AccessToken,並且確定它仍然是有效的令牌? 請記住,訪問令牌會在生成后約一個小時后過期,盡管可以更早撤消。
單擊novative-glass.appspot.com上的登錄按鈕會給我一個原點不匹配錯誤,因此您似乎也可能遇到配置問題。
您僅使用API Explorer就能使它正常工作嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.