Я пытаюсь подключиться к своему проекту BigQuery и получить список наборов данных с помощью экземпляра BigqueryService.Я могу сделать это успешно с помощью BigQueryClient;Тем не менее, у меня есть требование использовать BigqueryService.Чего мне не хватает?
static void Main(string[] args)
{
GoogleCredential credential;
BigqueryService service;
string query;
using (var json = new FileStream("secretkey.json", FileMode.Open, FileAccess.Read))
{
credential = GoogleCredential.FromStream(json);
service = new BigqueryService(new BaseClientService.Initializer
{
ApplicationName = "BigQueryTest",
HttpClientInitializer = credential
});
}
try
{
var serviceList = service.Datasets.List("testproject").Execute();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
var client = BigQueryClient.Create("testproject", credential);
var clientList = client.ListDatasets();
Console.ReadKey();
}
При запуске я столкнулся с исключением: «Запрос имеет недопустимые учетные данные для аутентификации ...» для Service.Datasets.List (), но client.ListDatasets () работает безпроблема.
Редактировать: я решил проблему.Мне нужно было использовать GoogleCredential.CreateScoped () для создания моих учетных данных.Рабочий код:
credential = GoogleCredential.FromStream(json);
string[] scopes = new string[] { BigqueryService.Scope.Bigquery
};
credential = credential.CreateScoped(scopes);
service = new BigqueryService(new BaseClientService.Initializer
{
ApplicationName = "BigQueryTest",
HttpClientInitializer = credential
});