Использование пользовательских учетных данных в API-интерфейсе ведения журнала Stackdriver C # Client Library - PullRequest
0 голосов
/ 06 ноября 2018

Я хотел бы использовать объект GoogleCredential (или аналогичный) для создания объекта клиента ведения журнала Stackdriver (экземпляр класса LoggingServiceV2Client) с использованием некоторых пользовательских учетных данных, а не учетных данных приложения по умолчанию.

Я не вижу соответствующей перегрузки метода LoggingServiceV2Client.Create, но строка документа для этого метода гласит:

Синхронно создает Google.Cloud.Logging.V2.LoggingServiceV2Client, применение значений по умолчанию для все неопределенные настройки и создание канала, соединяющего заданная конечная точка с учетными данными приложения по умолчанию, где это необходимо. См. Пример использования пользовательских учетных данных .

.

что говорит о том, что это возможно как-то?

Мне не удалось найти пример пользовательских учетных данных в документации. Единственные примеры, которые я вижу (например, this ), читают только учетные данные приложения default из переменной среды GOOGLE_APPLICATION_CREDENTIALS, которые я предпочел бы избегать

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Я уже оценил @Джеффри Ренни. В моем случае я использую Cloud Text-to-Speech , и мне пришлось использовать следующий код:

Usings:

using Google.Apis.Auth.OAuth2;
using Google.Cloud.TextToSpeech.V1;
using Grpc.Auth;

Код:

// Setting up credentials
string jsonPath = @"D:\my-test-project-0078ca7c0f8c.json";
var credential = GoogleCredential.FromFile(jsonPath).CreateScoped(TextToSpeechClient.DefaultScopes);
var channel = new Grpc.Core.Channel(TextToSpeechClient.DefaultEndpoint.ToString(), credential.ToChannelCredentials());

// Instantiate a client
TextToSpeechClient client = TextToSpeechClient.Create(channel);

// Perform the Text-to-Speech request, passing the text input with the selected voice parameters and audio file type 
var response = client.SynthesizeSpeech(new SynthesizeSpeechRequest
{
    Input = new SynthesisInput() { Text = "My test sentence" },
    Voice = new VoiceSelectionParams() { LanguageCode = "en-US", SsmlGender = SsmlVoiceGender.Male },
    AudioConfig = new AudioConfig { AudioEncoding = AudioEncoding.Mp3 };
});

Установленные пакеты NuGet :
Google.Cloud.TextToSpeech.V1 -Pre
Google.Apis.Auth

0 голосов
/ 16 ноября 2018

Это возможно, но далеко не очевидно.

Добавьте эти два оператора using в начало вашего .cs:

using Google.Apis.Auth.OAuth2;
using Grpc.Auth;

Затем создайте экземпляр клиента следующим образом:

var credential = GoogleCredential.FromFile(jsonPath)
    .CreateScoped(LoggingServiceV2Client.DefaultScopes);
var channel = new Grpc.Core.Channel(
    LoggingServiceV2Client.DefaultEndpoint.ToString(),
    credential.ToChannelCredentials());
var client = LoggingServiceV2Client.Create(channel);
...