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 に切り替えました。