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

Teams Tab应用:安装后如何传递subEntityId至应用?

问题:Teams Tab应用安装时subEntityId无法传递至安装后的应用

我们的Teams Tab应用通过Graph API请求https://graph.microsoft.com/v1.0/teams/${teamId}/channels/${channelId}/messages,向频道发送带安装按钮的Adaptive Card,供组织内其他用户安装。原本打算在deeplink的context对象里把推荐者ID赋值给subEntityId,用来追踪新用户的推荐来源,但用户点击按钮打开安装对话框,完成安装进入Tab应用后,subEntityId变成了null。当前使用的Adaptive Card代码如下:

{
    "title": "I have just installed the Sample App.",
    "subtitle": "",
    "text": "<p style='line-height:175%'>Click on the below button to install the Sample App",
"buttons": [
    {
        "type": "openUrl",
        "title": "Try Sample App",
        "value": "https://teams.microsoft.com/l/entity/app_id/index?context=%7B%22subEntityId%22%3A%22referrlToken%3A%20633fd8ea2dbcfe23c7fa6322%22%7D"
    }    
 ]
}

解决方案:通过后端存储衔接安装前后的参数传递

直接通过安装deeplink的context传递subEntityId不可行,因为Teams安装流程会重置应用上下文,原参数不会被持久化到安装后的实例中。可以用以下两种方法实现推荐者ID的追踪:

方法一:自定义安装参数+后端持久化存储

  • 修改deeplink,在context中加入自定义参数(比如customReferrerId):
    https://teams.microsoft.com/l/entity/app_id/index?context=%7B%22subEntityId%22%3A%22referrlToken%3A%20633fd8ea2dbcfe23c7fa6322%22%2C%22customReferrerId%22%3A%22633fd8ea2dbcfe23c7fa6322%22%7D
    
  • 监听应用的安装事件(可通过Teams应用的webhook或Graph API的应用安装通知),捕获当前安装用户的Teams ID和自定义参数中的推荐者ID,将两者关联后存储到你的应用后端数据库。
  • 用户首次打开安装后的Tab应用时,通过当前用户的Teams ID从后端查询对应的推荐者ID,即可实现来源追踪。

方法二:临时追踪ID+短期存储

  • 发送Adaptive Card前,生成一个唯一的追踪ID,将该ID与推荐者ID关联后存储到后端短期存储(如Redis),设置合适的过期时间(比如24小时)。
  • 修改Adaptive Card的按钮deeplink,把追踪ID放入subEntityId:
    https://teams.microsoft.com/l/entity/app_id/index?context=%7B%22subEntityId%22%3A%22tracker_abc123%22%7D
    
  • 用户完成安装打开Tab应用时,读取初始化上下文里的subEntityId(即追踪ID),然后从短期存储中查询对应的推荐者ID,完成关联后删除临时记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:40:53