Использование явных учетных данных в приложении диалога C # - PullRequest
1 голос
/ 05 июня 2019

Я создаю приложение на C #, которое использует DialogFlow's Detect Intent. Мне нужна помощь в явной передаче учетных данных Google Cloud.

Работает с переменной среды GOOGLE_APPLICATION_CREDENTIALS. Однако я хочу передать полномочия явно. Мне нужна версия решения на C # здесь .

Я использую следующий быстрый запуск, предоставленный вместе с документацией:

public static void DetectIntentFromTexts(string projectId,
                                        string sessionId,
                                        string[] texts,
                                        string languageCode = "en-US")
{
    var client = df.SessionsClient.Create();

    foreach (var text in texts)
    {
        var response = client.DetectIntent(
            session: new df.SessionName(projectId, sessionId),
            queryInput: new df.QueryInput()
            {
                Text = new df.TextInput()
                {
                    Text = text,
                    LanguageCode = languageCode
                }
            }
        );

        var queryResult = response.QueryResult;

        Console.WriteLine($"Query text: {queryResult.QueryText}");
        if (queryResult.Intent != null)
        {
            Console.WriteLine($"Intent detected: {queryResult.Intent.DisplayName}");
        }
        Console.WriteLine($"Intent confidence: {queryResult.IntentDetectionConfidence}");
        Console.WriteLine($"Fulfillment text: {queryResult.FulfillmentText}");
        Console.WriteLine();
    }
}

1 Ответ

1 голос
/ 05 июня 2019

В настоящее время вам нужно создать канал gRPC напрямую и передать его клиенту:

GoogleCredential credential = GoogleCredential.FromFile("...");
ChannelCredentials channelCredentials = credential.ToChannelCredentials();
Channel channel = new Channel(SessionsClient.DefaultEndpoint, channelCredentials);
var client = df.SessionsClient.Create(channel);

Очень скоро это будет намного проще с помощью шаблона компоновщика:

var client = new SessionsClientBuilder
{
    CredentialsPath = "path to file",
}.Build();

... или другие способы указания учетных данных.Я надеюсь, что это произойдет в ближайшие пару недель.

...