Ошибка аутентификации при использовании BigqueryService - PullRequest
3 голосов
/ 03 июля 2019

Я пытаюсь подключиться к своему проекту 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
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...