因此,我尝试将此公开工作表导出为CSV格式。
我已经了解到我可以使用以下模式,只需在我的浏览器中(没有登录谷歌):
https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key={0}&exportFormat=csv
这很棒,看起来很简单。但是,当我尝试在我的应用程序中执行此操作时,它似乎要我登录。而登录过程中,我无法开始工作。
我尝试了多种解决方案。使用旧的auth方法,我设法得到这样的东西:
var spreadsheetService = new SpreadsheetsService(name);
var csv = string.Empty;
using (var sr = new StreamReader(spreadsheetService.Query(exportUrl)))
{
csv = sr.ReadToEnd();
}
这很有效,但现在凭据已经转移到OAuth,这对我来说不再适用。我还没有找到将OAuth凭据添加到此方法的方法。
所以相反,我尝试过这个例子,并最终得到类似的东西:
var certificate = new X509Certificate2(data, "notasecret", X509KeyStorageFlags.Exportable);
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceEmail)
{
Scopes = new[] { PlusService.Scope.PlusMe }
}.FromCertificate(certificate));
credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Wait();
var service = new PlusService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "My app",
});
这似乎有效,但我不知道下一步是什么。如何在PlusService上执行我的导出查询?它甚至可能吗?相反,我可以将OAuth凭据添加到SpreadsheetService吗?
答案 0 :(得分:0)