Google 工作表 C# 未返回所有工作表
Google Sheets C# Not Returning all Sheets
我已经实施了一个 Google 服务帐户并将其添加为 sheet 上的授权用户。
接下来我使用以下代码访问 sheets 提要:
const string gUser = "SVC-ACCOUNT@developer.gserviceaccount.com";
const string certFile = "CERTFILE.p12";
static void Main(string[] args) {
var certificate = new X509Certificate2(certFile, "notasecret", X509KeyStorageFlags.Exportable);
var serviceAccountCredentialInitializer = new ServiceAccountCredential.Initializer(gUser) {
Scopes = new[] { "https://spreadsheets.google.com/feeds/" }
}.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer);
if (!credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Result)
return;
var requestFactory = new GDataRequestFactory(null);
requestFactory.CustomHeaders.Add("Authorization: Bearer " + credential.Token.AccessToken);
var service = new SpreadsheetsService("MY-SHEETS-SVC") { RequestFactory = requestFactory };
SpreadsheetQuery query = new SpreadsheetQuery();
var sheetFeed = service.Query(query);
Console.WriteLine("Spreadsheet list:");
foreach (var sheet in sheetFeed.Entries) {
Console.WriteLine("\t--" + sheet.Title.Text);
}
Console.ReadLine();
}
然而,尽管授予了服务帐户编辑权限,但它不会 return 任何 sheet。我已经将服务帐户添加到 Google Apps 安全组,结果没有任何变化。在过去,只需要创建帐户(相同的应用程序域等)并在共享设置中授予其编辑权限即可。 API 是否已更改为仅需要 OAUTH 或是否存在我遗漏的设置?
我的应用程序域正在更改,目前正在迁移中。在新账号下添加了一个sheet,马上就出现了
我已经实施了一个 Google 服务帐户并将其添加为 sheet 上的授权用户。
接下来我使用以下代码访问 sheets 提要:
const string gUser = "SVC-ACCOUNT@developer.gserviceaccount.com";
const string certFile = "CERTFILE.p12";
static void Main(string[] args) {
var certificate = new X509Certificate2(certFile, "notasecret", X509KeyStorageFlags.Exportable);
var serviceAccountCredentialInitializer = new ServiceAccountCredential.Initializer(gUser) {
Scopes = new[] { "https://spreadsheets.google.com/feeds/" }
}.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer);
if (!credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Result)
return;
var requestFactory = new GDataRequestFactory(null);
requestFactory.CustomHeaders.Add("Authorization: Bearer " + credential.Token.AccessToken);
var service = new SpreadsheetsService("MY-SHEETS-SVC") { RequestFactory = requestFactory };
SpreadsheetQuery query = new SpreadsheetQuery();
var sheetFeed = service.Query(query);
Console.WriteLine("Spreadsheet list:");
foreach (var sheet in sheetFeed.Entries) {
Console.WriteLine("\t--" + sheet.Title.Text);
}
Console.ReadLine();
}
然而,尽管授予了服务帐户编辑权限,但它不会 return 任何 sheet。我已经将服务帐户添加到 Google Apps 安全组,结果没有任何变化。在过去,只需要创建帐户(相同的应用程序域等)并在共享设置中授予其编辑权限即可。 API 是否已更改为仅需要 OAUTH 或是否存在我遗漏的设置?
我的应用程序域正在更改,目前正在迁移中。在新账号下添加了一个sheet,马上就出现了