1

Google スプレッドシートに個々のセルを書き込みたい。認証に新しい API (v3) と OAuth2 を使用しています。JSON キー ファイルを使用して承認と認証を行います。SpreadsheetService を構築し、クエリを作成してからフィードを作成します。フィードの作成時に"Parsing failed (root element missing)"エラーが発生します。developers.google.com およびその他の投稿とソリューションのドキュメント全体を読みましたが、重要な要素が欠けているようです。私には、自分の認証を Spreadsheetservice に「渡す」ことができないように見えます。これが私のコードです:

        static string[] SCOPES = { DriveService.Scope.Drive };
        static string APP_NAME = "Excel2Sheets";

        static void Main(string[] args)
        {
            /authentication using JSON file
            UserCredential credential;

            using (var stream =
                new FileStream("path_to_my_fyle",
                    FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    SCOPES,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Creds save to: {0}", credPath);
            }

            //building Drive Service
            var driveService = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = APP_NAME,
            });

            SpreadsheetsService sheetService = new SpreadsheetsService("Excel2Sheets");

            SpreadsheetQuery query = new SpreadsheetQuery();
            SpreadsheetFeed feed = sheetService.Query(query);

以前は正しく実行できましたが、API v2 を使用すると、更新トークンとそのタイムアウトで問題が発生しました。そのため、v3 に切り替えました。

4

0 に答える 0