私はASP.net COREでC#を使用してGoogleシートを作成して編集しようとしています。.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);
。
Googleの.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を使用してGoogleアカウントに認証するために使用されることです。
私はシートAPIを使用してGoogleシートを作成できないので、ここのどこかでも読んでいます。あなたはGoogleのドライブAPIを使用する必要があります。 GoogleドライブのAPI(ゲイン、認証はサービスアカウントを使用)を使用しました。ファイルを作成することはできましたが、アクセス方法はわかりません。私はファイルを作成したことを知っています。なぜなら、それらのAPIに与える例は、そのサービスアカウントのすべてのファイルを表示する小さなメソッドを持っているからです。
ロングストーリーショート: 私はアプリケーションのためのGoogleアカウントを持っているとしましょう。このアカウントを使用して、C#.NetCoreを使用して複数のシートを作成します。 可能であれば、これらのシートを特定の人だけが編集できるようにします。そうでない場合は、アプリケーションからのみです。 誰も閲覧許可のみを持つものとします。
どうすればいいですか?サービスアカウントは私がやっていることに役立ちますか?もしそうでなければ、どうすれば.Net CoreでAPIに認証できますか?
質問する前に、私はそのGoogleWebAuthorizationBrokerを置き換えるために(多くは)検索しましたが、わかりません。私はGoogle APIを使用していないし、経験豊富なプログラマーでもない。それでも、標準の.NETコードを使用すると、Googleクイックスタートガイドのすべての例が機能します。なぜ彼らは.NETのコアで動作しないのですか?
ありがとうございます。