You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Azure聊天机器人HTTP接口遇鉴权错误,寻求排查方案

解决Direct Line API请求中"Missing token or secret"错误

你遇到的问题很明确——你把Authorization凭证放到了URL参数里,而不是正确的HTTP请求头中。Direct Line API要求身份验证信息必须通过请求头传递,而不是URL的查询参数。

直接给你修正后的代码:

import requests

# 构造请求头,将Authorization凭证放在这里
auth_headers = {
    'Authorization': 'Bearer ftmhNAqZ2tw.cwA.qIA.Xz2ZWfYJzxd8vJjcK9VmINWNLxlvKiM5jC8F_cbaf0s'
}

# 发送POST请求时,通过headers参数传递请求头
response = requests.post(
    'https://directline.botframework.com/api/conversations',
    headers=auth_headers
)

# 查看响应结果
print(response.content)

为什么之前的代码会报错?

  • 你用的params参数是用来生成URL查询字符串的(比如https://xxx.com?key=value),但Direct Line API的服务端并不会从这些URL参数里读取Authorization凭证。
  • 只有当你把Authorization: Bearer <你的密钥/令牌>放在HTTP请求头中时,服务端才能正确识别并验证你的身份,从而创建对话。

如果想确认请求头是否正确发送,可以在请求后打印response.request.headers,这样就能看到实际发送给服务器的请求头内容,确保Authorization字段已经正确包含在内。

内容的提问来源于stack exchange,提问作者DavidBankom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:05:25