首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在新创建的选项卡上获取散列entityId

在新创建的选项卡上获取散列entityId
EN

Stack Overflow用户
提问于 2020-03-23 23:58:16
回答 2查看 53关注 0票数 1

我正在尝试以编程方式创建一个链接,该链接指向我刚刚在MS Teams中创建的一个选项卡,格式如下:

代码语言:javascript
复制
https://teams.microsoft.com/l/entity/${appId}/${entityId}?context={"channelId":"${channelId}"}

我知道appId。我可以从microsoftTeams.getContext那里拿到channelId。问题出在entityId上。

我们有一个非常长的entityId,它是一个很大的字符串化的JSON配置对象。创建选项卡是可行的,但当我通过UI获得选项卡的链接时,entityId如下所示:

代码语言:javascript
复制
https://teams.microsoft.com/l/entity/{appId}/_djb2_msteams_prefix_4000611857?context=...

似乎MS团队正在使用一些djb2散列算法来编码我们提供的长entityId。使用带有dbj2哈希实体ID的链接是可行的。使用我们用实际entityId (字符串化和url编码)创建的链接不起作用。

如何创建entityId的djb2散列?或者,如何使用长entityId创建到选项卡的链接?

EN

回答 2

Stack Overflow用户

发布于 2020-03-25 05:42:38

使用我们用实际entityId (字符串化和url编码)创建的链接的

不起作用。

我们创建的entityId应该可以工作,但内容有一些问题。最初的entityId类似于

代码语言:javascript
复制
JSON.stringify(
  {
    url: encodeURIComponent('https://link.to.website/path?with&searchquery')
  }
)

编码的%字符导致链接无法正确解析。我最终通过对entityId进行稍微不同的编码解决了这个问题。它需要更多的努力来解析,但现在一切都可以工作了。

代码语言:javascript
复制
btoa(encodeURIComponent(JSON.stringify(
  {
    url: encodeURIComponent('https://link.to.website/path?with&searchquery')
  }
)))
票数 1
EN

Stack Overflow用户

发布于 2020-03-24 00:51:35

这听起来像是你试图生成一个“深度链接”到你的标签,在这种情况下,这应该是有用的:Generating a deep link to your tab。它包括一些示例,展示了如何深度链接到选项卡中的单个项目、传入上下文等。

有些部分可能有点困惑,但试一试,它应该能做你需要的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60817107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档