我想創建和編輯使用c#在ASP.net CORE的谷歌牀單。如何在.Net內核中使用GoogleSheets API?
目前我可以編輯一個表,使用此代碼:
var credential = GoogleCredential.
FromStream(new FileStream("Google/client_secrets.json", FileMode.Open)).
CreateScoped(SheetsService.Scope.Spreadsheets);
var service = new SheetsService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = "just a test"
});
// service.Spreadsheets.Values.Update(valueRangeNames, spreadsheetId, rangeNames);
正如你所看到的,我使用的是服務帳戶。
在谷歌的.NET快速入門指南,他們使用此代碼:
UserCredential credential;
using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
,但在.NET的核心,該GoogleWebAuthorizationBroker不存在。 據我所知,這是用來驗證谷歌帳戶使用Oauth2。
我也讀過這裏的一些地方,你不能使用表api創建一個谷歌表。你需要使用谷歌驅動器API。 我使用谷歌驅動器API(增益,使用服務帳戶認證)。我能夠創建一個文件,但我不知道如何訪問它。我知道我創建了一個文件,因爲他們在api上給出的示例有一個顯示該服務帳戶中所有文件的小方法。
長話短說: 比方說,我有一個應用程序的谷歌帳戶。我想用這個帳戶來創建多個工作表,使用C#.NetCore。 我希望這些工作表只能由某些人編輯,如果可能的話。如果不是,只能從應用程序中獲取。 其他人都只能查看權限。
我該怎麼做?服務帳戶對我的計劃有用嗎?如果沒有,我如何使用.Net Core對api進行身份驗證?
在你問,是的,我搜索(很多)爲該GoogleWebAuthorizationBroker的替代品,但我無法弄清楚。我從來沒有使用谷歌apis,我也不是一個有經驗的程序員。儘管如此,使用標準的.NET代碼,谷歌快速入門指南上的所有示例都可以工作。爲什麼他們不能在.NET Core中工作?
謝謝。