如何通过代码动态修改Microsoft Teams消息扩展manifest的commands配置
Teams消息扩展命令动态切换方案
核心问题答复
- 不支持直接通过代码动态修改Teams应用manifest中预定义的
commands配置:manifest是应用上传、安装阶段就生效的静态配置文件,运行时没有接口可以直接修改已生效的manifest配置。 - 你需要的「已登出状态显示
Sign In命令、已登入状态显示Sign Out命令」的需求可以通过官方提供的动态命令能力实现,完全可以通过代码动态控制返回的命令列表,不需要改动已发布的manifest也能达到效果。
具体实现方式
调整manifest配置开启动态命令能力
在你应用manifest的composeExtensions(消息扩展对应的配置节点)下添加"fetchTask": true配置项,原来硬编码在manifest里的Sign In、Sign Out命令可以全部从commands数组中移除,改为运行时动态返回。服务端适配动态命令请求
每次用户点击消息扩展图标触发加载时,Teams会向你的服务端发送composeExtension/fetchTask类型的请求,你在该请求的处理逻辑中先判断当前用户的登录状态:
- 若用户处于未登录状态,接口返回携带
Sign In命令定义的响应 - 若用户处于已登录状态,接口返回携带
Sign Out命令定义的响应
- 操作后刷新命令列表
用户点击Sign In完成登录、或者点击Sign Out完成登出后,你可以调用Teams客户端SDK的相关接口通知前端刷新消息扩展的命令列表,刷新后就会立刻展示对应状态的命令,不需要用户手动重启应用。
内容的提问来源于stack exchange,提问作者GMAC
相关产品推荐
相关产品推荐

