簡體   English   中英

使用C#在Dialogflow API V2中進行身份驗證

[英]Authentication in Dialogflow API V2 using C#

我將履行API的.NET Web API項目作為我的Dialogflow代理中的webhook。 在我們的控制器的Post方法中,在收到Dialogflow的請求后,我實現了顯式身份驗證,如C#的Google Cloud文檔中所示。

//jsonFileName is the name of the serviceAccountKey json generated from the Google Cloud Platform that's encrypted internally
public bool AuthExplicit(string projectId, string jsonFileName)
    {
        try
        {
            string JsonCredential = DecryptHelper.Decrypt(jsonFileName);

            var credential = GoogleCredential.FromJson(JsonCredential).CreateScoped(LanguageServiceClient.DefaultScopes);
            var channel = new Grpc.Core.Channel(
                LanguageServiceClient.DefaultEndpoint.ToString(),
                credential.ToChannelCredentials());
            var client = LanguageServiceClient.Create(channel);
            AnalyzeSentiment(client);

            if (client != null)
            {
                return true;
            }
            else
            {
                return false;
            }

        }

internal void AnalyzeSentiment(LanguageServiceClient client)
        {
            var response = client.AnalyzeSentiment(new Document()
            {
                Content = "Authenticated.",
                Type = Document.Types.Type.PlainText
            });

            var sentiment = response.DocumentSentiment;
            string score = $"Score: {sentiment.Score}";
            string magnitude = $"Magnitude: {sentiment.Magnitude}";
        }

與代碼的不同之處在於,在獲取客戶端之后,當我們調用AnalyzeSentiment()方法時,它不會執行任何操作,並且projectId參數永遠不會用於進行身份驗證。 GCP文檔非常混亂,因為當有一個使用projectId的AuthExplicit()時,它會將它用作存儲桶的參數,並且只在控制台上打印它。

它工作正常,直到我們使用不同的代理測試服務帳戶密鑰。 預期的輸出是認證失敗,但不知怎的,它仍然通過。

一旦Post方法通過AuthExplicit()方法,它將只返回一個布爾值。 這是驗證的正確方法嗎? 或者還有什么需要調用?

與代碼的不同之處在於,在獲取客戶端之后,當我們調用AnalyzeSentiment()方法時,它不執行任何操作,

client.AnalyzeSentiment()是否返回空響應? 通話是否永遠掛起?

它工作正常,直到我們使用不同的代理測試服務帳戶密鑰。

什么是不同的代理人? 一個不同的User-Agent標頭?

一旦Post方法通過AuthExplicit()方法,它將只返回一個布爾值。 這是驗證的正確方法嗎? 或者還有什么需要調用?

“Post方法”指的是什么? 什么是只返回布爾值的'它'?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM