Google BigQuery 服务帐户凭据在 C# 应用程序中使用 JSON 文件
Google BigQuery Service Account Credentials using JSON file in C# application
在为 Google BigQuery 创建服务帐户时,有两种关键文件类型。 1. P12 密钥文件 2. JSON 密钥文件.
我可以通过以下代码使用 P12 密钥文件将 Google BigQuery 与服务帐户凭据连接起来。
String serviceAccountEmail = "XXXX@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"FileName.p12", "Secret Key", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { BigqueryService.Scope.Bigquery, BigqueryService.Scope.BigqueryInsertdata, BigqueryService.Scope.CloudPlatform, BigqueryService.Scope.DevstorageFullControl }
}.FromCertificate(certificate));
BigqueryService Service = new BigqueryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "PROJECT NAME"
});
现在我正在尝试使用 JSON 文件类型连接服务帐户凭据,但我无法获得正确的创建语法。
我们如何使用 JSON 文件将 Google BigQuery 与服务帐户凭据连接起来?
谢谢,
我得到了 link,这表明 C# 应用程序中使用 JSON 文件的服务帐户身份验证尚未添加到 Google BigQuery API 中,所以我想结束这个问题。
https://github.com/google/google-api-dotnet-client/issues/533
现在可以(我使用了 Google API 的 v 1.13.1.0)。
GoogleCredential credential;
using (Stream stream = new FileStream(@"C:\mykey.json", FileMode.Open, FileAccess.Read, FileShare.Read))
{
credential = GoogleCredential.FromStream(stream);
}
string[] scopes = new string[] {
BigqueryService.Scope.Bigquery,
BigqueryService.Scope.CloudPlatform,
};
credential = credential.CreateScoped(scopes);
BaseClientService.Initializer initializer = new BaseClientService.Initializer()
{
HttpClientInitializer = (IConfigurableHttpClientInitializer)credential,
ApplicationName = "My Application",
GZipEnabled = true,
};
BigqueryService service = new BigqueryService(initializer);
在为 Google BigQuery 创建服务帐户时,有两种关键文件类型。 1. P12 密钥文件 2. JSON 密钥文件.
我可以通过以下代码使用 P12 密钥文件将 Google BigQuery 与服务帐户凭据连接起来。
String serviceAccountEmail = "XXXX@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"FileName.p12", "Secret Key", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { BigqueryService.Scope.Bigquery, BigqueryService.Scope.BigqueryInsertdata, BigqueryService.Scope.CloudPlatform, BigqueryService.Scope.DevstorageFullControl }
}.FromCertificate(certificate));
BigqueryService Service = new BigqueryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "PROJECT NAME"
});
现在我正在尝试使用 JSON 文件类型连接服务帐户凭据,但我无法获得正确的创建语法。
我们如何使用 JSON 文件将 Google BigQuery 与服务帐户凭据连接起来?
谢谢,
我得到了 link,这表明 C# 应用程序中使用 JSON 文件的服务帐户身份验证尚未添加到 Google BigQuery API 中,所以我想结束这个问题。
https://github.com/google/google-api-dotnet-client/issues/533
现在可以(我使用了 Google API 的 v 1.13.1.0)。
GoogleCredential credential;
using (Stream stream = new FileStream(@"C:\mykey.json", FileMode.Open, FileAccess.Read, FileShare.Read))
{
credential = GoogleCredential.FromStream(stream);
}
string[] scopes = new string[] {
BigqueryService.Scope.Bigquery,
BigqueryService.Scope.CloudPlatform,
};
credential = credential.CreateScoped(scopes);
BaseClientService.Initializer initializer = new BaseClientService.Initializer()
{
HttpClientInitializer = (IConfigurableHttpClientInitializer)credential,
ApplicationName = "My Application",
GZipEnabled = true,
};
BigqueryService service = new BigqueryService(initializer);