Ich versuche, Google-Blätter mit C# in ASP.net CORE zu erstellen und zu bearbeiten.Wie wird die GoogleSheets-API im .Net-Core verwendet?
Zur Zeit kann ich ein Blatt bearbeiten, mit diesem Code:
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);
Wie Sie sehen können, bin ich ein Dienstkonto verwenden.
in Googles .NET Kurzanleitung, verwenden sie diesen Code:
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);
}
aber in .NET-Core, wird der GoogleWebAuthorizationBroker nicht vorhanden. Soweit ich das verstanden habe, wird dies verwendet, um sich mit Oauth2 bei einem Google-Konto zu authentifizieren.
Ich habe auch irgendwo hier auf SO gelesen, dass Sie kein Google-Blatt mit dem Blatt API erstellen können. Sie müssen die Google Drive API verwenden. Ich benutzte die Google Drive API (Gewinn, Authentifizierung mit einem Dienstkonto). Ich konnte eine Datei erstellen, weiß aber nicht, wie ich darauf zugreifen kann. Ich weiß, dass ich eine Datei erstellt habe, weil das Beispiel, das sie auf ihrer API geben, eine kleine Methode hat, die alle Dateien in diesem Dienstkonto anzeigt.
Lange Geschichte kurz: Angenommen, ich habe ein Google-Konto für die Anwendung. Ich möchte dieses Konto verwenden, um mehrere Blätter mit C# .NetCore zu erstellen. Ich möchte, dass diese Blätter wenn möglich nur von bestimmten Personen bearbeitet werden können. Wenn nicht, nur von der Anwendung. Alle anderen dürfen nur eine Sichtberechtigung haben.
Wie kann ich das tun? Ist das Dienstkonto nützlich für das, was ich vorhabe? Wenn nicht, wie kann ich mich mit dem .Net Core authentifizieren?
Bevor Sie fragen, ja, ich suchte (viel) nach einem Ersatz für diesen GoogleWebAuthorizationBroker, aber ich kann es nicht herausfinden. Ich habe Google API nie benutzt und ich bin auch kein erfahrener Programmierer. Bei Verwendung von .NET-Standardcode funktionieren jedoch alle Beispiele in Google Quickstart-Handbüchern. Warum würden sie nicht in .NET Core arbeiten?
Vielen Dank.