Azure Bot Framework(Node.js)调用语言工作室问答API遇401错误求助
问题:Node.js中Azure Bot Framework调用语言工作室问答API返回401错误
在Node.js环境下使用Azure Bot Framework调用Azure语言工作室问答REST API时,代码请求返回401权限错误,但通过Postman调用相同API可正常运行。Bot Framework已部署在Azure Web App Service上,且已确认使用了正确的API URL及有效订阅密钥,其他Azure语言工作室API调用均正常。
代码示例
let options = { method: 'post', url: `${process.env.LanguageEndpointHostName}language/:query-text?api-version=2021-10-01`, headers: { 'Ocp-Apim-Subscription-Key': process.env.LanguageEndpointKey, 'Content-Type': 'application/json' }, data: inputData }; let result = await axios(options);
错误提示
Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.
解决方案
- 检查URL拼接格式:确认
process.env.LanguageEndpointHostName末尾是否包含斜杠/,如果没有,拼接后的URL会缺失路径分隔符,导致端点无效。正确的拼接应为${process.env.LanguageEndpointHostName}/language/:query-text?api-version=2021-10-01(手动添加斜杠)。 - 验证环境变量加载:在Azure Web App Service的配置中确认
LanguageEndpointHostName和LanguageEndpointKey的取值与Postman中使用的完全一致,可在代码中添加日志输出这两个变量的值,排查部署后是否存在变量未正确注入的情况。 - 检查网络访问限制:若Azure语言工作室资源配置了虚拟网络、IP防火墙等访问限制,需确认Web App Service的出站IP地址已被添加至允许列表,避免因网络隔离导致权限验证失败。
- 核对请求头拼写:虽然HTTP头不区分大小写,但部分代理或服务可能对大小写敏感,确认
Ocp-Apim-Subscription-Key的拼写完全正确,无大小写或字符错误。
内容的提问来源于stack exchange,提问作者tok
相关产品推荐
相关产品推荐

