我有一个使用 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": []
“Ocp-Apim-Subscription-key”不是授权密钥,它是一个简单的标头。 您可能应该从登录序列中获得一个 BEARER 令牌。
MSG.Headers.Add("Ocp-Apim-Subscription-key", "<your subscription key>");
MSG.Headers.Authorization = new AuthenticationHeaderValue("BEARER", "<your bearer token>");