提问人:klek_sik 提问时间:11/14/2023 最后编辑:klek_sik 更新时间:11/14/2023 访问量:36
Bot Framework 中auth_header的 JWT 访问令牌
JWT access token for auth_header in Bot Framework
问:
我正在开发一个 MS Teams 机器人,旨在发送消息以响应事件。例如,当机器人从外部源收到 API 消息时,它会处理信息并发送相应的消息。机器人不用于回复消息;它仅用于通知。我从一个 Python 示例开始,特别是 02.echo-bot。通过 MS Teams 向机器人发送消息时,该消息包含一个持有者令牌,可以在以下位置查看:app.py
# Listen for incoming requests on /api/messages
async def messages(req: Request) -> Response:
# Main bot message handler.
if "application/json" in req.headers["Content-Type"]:
body = await req.json()
else:
return Response(status=HTTPStatus.UNSUPPORTED_MEDIA_TYPE)
activity = Activity().deserialize(body)
auth_header = req.headers["Authorization"] if "Authorization" in req.headers else ""
print("auth_header: ", auth_header)
response = await ADAPTER.process_activity(activity, auth_header, BOT.on_turn)
if response:
return json_response(data=response.body, status=response.status)
return Response(status=HTTPStatus.OK)
我正在打印以查看令牌的值:auth_header
auth_header:Bearer eyJhbGciOiJSUzI...
获取此令牌并重建 API 帖子后,我正在发送一个帖子请求,以从机器人检索消息,而无需在 MS Teams 对话中启动消息。请求正文如下所示:
{
"conversation": {
"id": "<CONVERSATION ID>"
},
"serviceUrl": "https://smba.trafficmanager.net/amer/",
"text": "bot",
"status": "stopped",
"type": "message"
}
问题是令牌过期了,我想以发送消息以外的方式获取它,因为机器人的目的只是发送通知。 我按照使用 Bot Connector API 进行身份验证的说明进行操作,但它始终返回:
botbuilder.schema._models_py3。ErrorResponseException:操作返回无效状态代码“未经授权”
答: 暂无答案
评论