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

Teams个人选项卡应用URL占位符展开异常问题排查

问题

我正在开发Microsoft Teams个人选项卡应用,初始页面加载正常,但希望在首次GET请求中获取tenant id。根据微软官方文档,TeamsJS 2.0.0及以上版本应使用{user.tenant.id}占位符,早期版本使用{tid}。

我的manifest版本为1.15,该版本支持TeamsJS 2.0.0及以上,但测试发现{tid}可正常展开,{user.tenant.id}却无法展开。我的选项卡contentUrl为:
https://teams.test.dev/Home/Debug?tenant1={tid}&tenant2={user.tenant.id}

Teams实际发送的请求为:
https://teams.test.dev/Home/Debug?tenant1=ACTUAL-TENANT-GUID&tenant2=%7buser.tenant.id%7d

而我预期的请求应为:
https://teams.test.dev/Home/Debug?tenant1=%7btid%7d&tenant2=ACTUAL-TENANT-GUID

请问是文档存在错误,还是我遗漏了某些配置?

以下是我的manifest(已替换GUID和域名):

{
    "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.15/MicrosoftTeams.schema.json",
    "version": "1.0.0",
    "manifestVersion": "1.15",
    "id": "11111111-1111-1111-1111-111111111111",
    "packageName": "dev.test.teams",
    "name": {
        "short": "Test Dev",
        "full": "Test development app"
    },
    "developer": {
        "name": "Dev",
        "mpnId": "",
        "websiteUrl": "https://teams.test.dev",
        "privacyUrl": "https://teams.test.dev/privacy",
        "termsOfUseUrl": "https://teams.test.dev/termsofuse"
    },
    "description": {
        "short": "Short description",
        "full": "This is a long description..."
    },
    "icons": {
        "outline": "outline.png",
        "color": "color.png"
    },
    "accentColor": "#FFFFFF",
    "staticTabs": [
        {
            "entityId": "22222222-2222-2222-2222-222222222222",
            "name": "Debug",
            "contentUrl": "https://teams.test.dev/Home/Debug?tenant1={tid}&tenant2={user.tenant.id}",
            "websiteUrl": "https://teams.test.dev/Home/Debug",
            "scopes": [
                "personal"
            ]
        },
        {
            "entityId": "about",
            "scopes": [
                "personal"
            ]
        }
    ],
    "validDomains": [
        "*.test.dev"
    ],
    "webApplicationInfo": {
        "id": "33333333-3333-3333-3333-333333333333",
        "resource": "api://teams.test.dev/33333333-3333-3333-3333-333333333333"
    }
}
解决方案

核心原因

虽然manifest 1.15理论上兼容TeamsJS 2.x,但{user.tenant.id}这类嵌套占位符的解析支持,实际上是从manifest版本1.16才开始正式引入的。你当前使用的1.15版本并不支持该占位符,这就是它无法被展开的原因;而{tid}作为传统占位符,在所有高版本manifest中都能保持兼容解析。

解决步骤

  1. 升级manifest版本到1.16或更高
    修改manifest中的manifestVersion字段为1.16,同时更新对应的schema链接为https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json。
  2. 重新打包并上传应用
    确保更新后的manifest没有语法错误,重新打包成zip文件后上传到Teams进行测试,此时{user.tenant.id}应该能正常解析为租户ID。
  3. 临时替代方案(若无法升级manifest)
    如果暂时无法升级manifest版本,继续使用{tid}占位符即可,它在个人选项卡场景下能稳定获取租户ID,功能上与{user.tenant.id}完全等价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:45:34