Google sheets GoogleSheetsAPI。追加方法问题。C#

Google sheets GoogleSheetsAPI。追加方法问题。C#,google-sheets,google-api,Google Sheets,Google Api,当我试图在电子表格中添加时,我遇到了一个问题 My Program.cs: class Program { private static GApiHandler gapi = GApiHandler.getInstance(); static void Main(string[] args) { var db = new AppDbContext(); var sheetInfo = db.SheetInfoes .

当我试图在电子表格中添加时,我遇到了一个问题

My Program.cs:

class Program
{
    private static GApiHandler gapi = GApiHandler.getInstance();
    static void Main(string[] args)
    {
        var db = new AppDbContext();
        var sheetInfo = db.SheetInfoes
            .Include(i => i.AMZ)
            .Include(i => i.Google)
            .Include(i => i.Template)
            .Include(i => i.Sheet)
            .Include(i => i.List)
            .Include(i => i.Operation)
            .FirstOrDefaultAsync().Result;
        //Console.WriteLine(JsonConvert.SerializeObject(sheetInfo));
        var row = new List<string>();
        row.Add("First Add");
        row.Add("Second column");
        row.Add("Third one");
        var append = new Append();
        append.values.Add(row);
        append.values.Add(row);
        append.values.Add(row);
        Console.WriteLine(JsonConvert.SerializeObject(append));
        gapi.Insert(sheetInfo, append);
        Console.WriteLine("Hello World!");
        Console.ReadKey();
    }
}      
“价值观”:[ [ “第一次添加”, “第二栏”, “第三个” ], [ “第一次添加”, “第二栏”, “第三个” ] ]
}var content=newstringcontent(JsonConvert.SerializeObject(updateBatch))

这是一个简单的解决方案。当然,除了FormUrlEncodedContent之外,我还必须使用StringContent

我在StackOverflow中找到FormUrlEncodedContent,因为我的VisualStudio IntelliSense没有找到StringContent(或者我错过了键“new”)。。。我开始认为没有这样的课程。哦大失误

public class Append
{
    public List<List<string>> values { get; set; }

    public Append()
    {
        values = new List<List<string>>();
    }
}    
public bool Insert(SheetInfo sheetInfo, Append append)
    {
        // tmp
        var spreadsheetId = sheetInfo.Sheet.Id;
        var range = "A2:Z5";
        var acc = sheetInfo.Google;
        //Console.WriteLine(values);
        var contentPairs = new[]
            {
                new KeyValuePair<string, string>("", JsonConvert.SerializeObject(append))
            };
        // end tmp
        var url = $"https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}:append?valueInputOption=ROW";
        Console.WriteLine(url);
        var response = RequestAsync(url, acc, contentPairs).Result;
        Console.WriteLine(response);

        return true;
    }       
public async Task<string> RequestAsync(string url, GoogleAcc acc, IEnumerable<KeyValuePair<string, string>> contentPairs = null)
    {
        if (acc != null && acc.ExpiresAt < DateTime.Now)
            await NewToken(acc);
        using (var client = new HttpClient())
        {
            HttpResponseMessage result = null;
            FormUrlEncodedContent content = null;

            if (acc != null) client.DefaultRequestHeaders.Add("Authorization", $"Bearer {acc.AccessToken}");
            client.DefaultRequestHeaders.Add("Accept", "application/json");

            if (contentPairs != null)
            {
                content = new FormUrlEncodedContent(contentPairs);
                result = await client.PostAsync(url, content);
            }
            else
            {
                result = await client.GetAsync(url);
            }

            return await result.Content.ReadAsStringAsync();
        }
    }
{