因此,我目前正在修復一個應用程式X,它是通過使用.Net Framerwork v4.5和Google.GData.Spreadsheets nuget包撰寫的,它從某些Google Spreadsheet中檢索行和列。
谷歌在上個月(2021年8月)已經正式關閉了v3電子表格API,這導致X停止作業。
X是一個傳統的應用程式,它是由暫時不在我公司作業的員工撰寫的,其中大部分是傳統的代碼。使用舊的 Spreadsheets 包的某些部分我既不能理解也不能正確除錯。我真的希望至少能找到那個舊軟體包的檔案,這樣我就能理解發生了什么。我在使用新的api時基本沒有問題,因為有一個如何從v3遷移到v4的指南,所以我可以看到哪些OAuth2.0同意范圍發生了變化等等。但是由于某些原因,我很難找到 Google.Data.Spreadsheets 的任何檔案(至少在 nuget.org 和 code.google.com 上沒有對我有用、可用的資訊)。
- 有沒有人使用Google.GData.Spreadsheets軟體包,如果有,你在哪里找到檔案?
- 有人能在這種情況下至少給我一個大方向的建議嗎?
- 我在過去的7個月里沒有使用.net平臺,所以在解決這種問題的一般方法上可能存在一些問題。
uj5u.com熱心網友回復:
有沒有人使用Google.GData.Spreadsheets包,如果有,你在哪里找到檔案?
沒有,你也不會,Gdata版本的Google Sheets api已經過時了,與Google Sheets api v4完全不同,你不可能讓它作業。
在這種情況下,誰能至少給我一個大方向的建議?
您需要切換到 Google Sheets api v4,官方檔案中有一個用于 .net 的示例Google sheets api 示例該示例使用 Google api .net 客戶端庫
。用于.net的庫是Google api .net客戶端庫
。對于控制臺應用程式,授權應該是這樣的。
使用(var stream = new FileStream(clientSecretJson, FileMode.Open, FileAccess.Read))。
{
string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)。
credPath = Path.Combine(credPath, ".credentials/", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name) 。
// 請求認證或為用戶名加載先前存盤的認證
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets,
作用域。
用戶名稱。
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
credential.GetAccessTokenForRequestAsync()。
回傳憑證。
}
此外,這個api與gdata完全不同,這意味著你需要改變你的應用程式對api的所有呼叫,以使用新的v4版本。 我個人認為這將是一次全面的重寫,我在大約八年前對一個類似你的應用程式進行了升級。 Gdata是完全不同的,沒有什么可以重新開始。
在過去的7個月里,我沒有在.net平臺上作業過,所以在我解決這種問題的一般方法上可能存在一些問題。
你也可以趁此機會升級到.net 5。
你也可以趁此機會升級到.net 5。
檔案
至于尋找舊的檔案,恐怕它已經消失了。 我無法在 Github 上找到源代碼,也無法找到檔案本身。 谷歌在一年多前就宣布了API的消失,你有點晚了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/320535.html
標籤:
