Microsoft Bot Builder Python teams-auth示例登录后login_step未调用问题
问题根因
该错误是botbuilder-dialogs包版本不兼容导致的:近期发布的4.14.0及以上版本对OAuthPrompt的构造方法做了不向下兼容的重构,而官方46.teams-auth示例的代码是基于4.13.x及更早版本的SDK编写的,未固定依赖版本的情况下pip会默认拉取最新版SDK,就会出现参数匹配错误、无法进入后续登录回调逻辑的问题。
解决方案
方案1:固定SDK版本(推荐,和官方示例完全适配)
- 打开项目根目录的
requirements.txt文件,将所有botbuilder开头的依赖项版本统一锁定为4.13.0,修改后参考如下:
botbuilder-core==4.13.0 botbuilder-dialogs==4.13.0 botbuilder-ai==4.13.0 botbuilder-applicationinsights==4.13.0 botbuilder-azure==4.13.0 botbuilder-integration-aiohttp==4.13.0 botbuilder-schema==4.13.0 botbuilder-teams==4.13.0
- 删除原有虚拟环境,重新搭建Python 3.6/3.7/3.8版本的虚拟环境,执行命令安装依赖:
pip install -r requirements.txt - 重启服务后重新测试,登录流程即可正常进入
login_step函数。
方案2:适配高版本SDK
如果需要使用4.14.0及以上版本的SDK,修改OAuthPrompt的实例化代码,将所有参数改为关键字参数传递即可:
# 旧版位置参数写法(不兼容4.14+版本) # oauth_prompt = OAuthPrompt(OAUTH_PROMPT, oauth_settings) # 新版兼容写法 oauth_prompt = OAuthPrompt( dialog_id=OAUTH_PROMPT, oauth_settings=oauth_settings )
内容的提问来源于stack exchange,提问作者maheshpardeshi
相关产品推荐
相关产品推荐

