未经授权。访问令牌丢失、无效、受众不正确 (https://cognitiveservices.azure.com) 或已过期

问题描述 投票:0回答:1

我有一个使用 Bot Framework 的 C# 语言的聊天机器人,我使用 Luis api 来识别用户输入的意图,但我收到一条错误消息:未经授权。访问令牌丢失、无效、受众不正确 (https://cognitiveservices.azure.com) 或已过期

        var GetRequest = new HttpClient();
        var url = "?q=cars";
        var MSG = new HttpRequestMessage(HttpMethod.Get, url);
        MSG.Headers.Authorization = new AuthenticationHeaderValue("Ocp-Apim-Subscription-key", "");
        var GetResult = GetRequest.SendAsync(MSG);
        var res = GetResult.Result.Content.ReadAsStringAsync().Result;
        await turnContext.SendActivityAsync(res);   

在 url 中,我输入了调用 API 的 url,并将主键添加到标头中。

当我在邮递员上测试 API 时,它运行良好,我得到了响应,但在代码中我收到了错误消息。

这是我在邮递员中测试时得到的响应

"query": "cars",
"topScoringIntent": {
    "intent": "Cars",
    "score": 0.90734994
},
"entities": []
c# azure botframework chatbot azure-language-understanding
1个回答
1
投票

“Ocp-Apim-Subscription-key”不是授权密钥,它是一个简单的标头。 您可能应该从登录序列中获得一个 BEARER 令牌。

MSG.Headers.Add("Ocp-Apim-Subscription-key", "<your subscription key>");
MSG.Headers.Authorization = new AuthenticationHeaderValue("BEARER", "<your bearer token>");
© www.soinside.com 2019 - 2024. All rights reserved.