Teams中有一个不太被大家注意的扩展点,名字叫Link unfurling,就是对于一些特殊域名的URL进行特别的解释。

可能这么说,大家还是无法理解,我们看一下下面这个图,当用户在message输入框中输入了一窜url后,Teams会按照自己本身的一种规则来对URL指定的网页产生预览。但是如果你想要生成你自己的特殊的预览卡片的话,就需要这种扩展了。

一说到时间,就会联想到时区,夏令时等头痛的问题,不同国家有不同国家的规定。如果你希望你的Teams Bot可以判断出当前用户所在的时区,从而可以针对性的进行一些处理时,你要做好心理准备,这个复杂程度远远超过你的想象。因为一个用户这次在一个时区内登入Teams,下一次可能就在另一个时区了。

怎么做呢?很简单,两步,首先现在你的app的manifest文件中申请一下你的bot可以支持这种功能,值得一提的是,你可以同时指定多个域名哦。


"composeExtensions": [{"botId": "abc123456-ab12-ab12-ab12-abcdef123456","messageHandlers": [{"type": "link","value": {"domains": ["*.specialdomain.com"]}}]}
],

如果你使用App Studio,也可以。在Message Extension页里,找到Message Handlers,然后就可以一个个的添加你的预览的域名。

第二步,你需要让你的bot能够处理“composeExtension/queryLink”这种命令。

如果你使用的是C#,代码类似于:

protected override async Task<MessagingExtensionResponse> OnTeamsAppBasedLinkQueryAsync(ITurnContext<IInvokeActivity> turnContext, AppBasedLinkQuery query, CancellationToken cancellationToken)
{// 访问query.link来分析这个网页var card = new ThumbnailCard{Title = "你所希望显示的标题",Text = "你所希望显示的文字",Images = new List<CardImage> { new CardImage("https://yourimages.com/yourimage.png") },};var attachments = new MessagingExtensionAttachment(HeroCard.ContentType, null, card);var result = new MessagingExtensionResult(AttachmentLayoutTypes.List, "result", new[] { attachments }, null, "mytest");return new MessagingExtensionResponse(result);
}

如果使用的是nodejs:

class TeamsLinkUnfurlingBot extends TeamsActivityHandler {handleTeamsAppBasedLinkQuery(context, query) {// 访问query.url来分析这个网页const attachment = CardFactory.thumbnailCard('你所希望显示的标题',query.url,['https://yourimages.com/yourimage.png']);const result = {attachmentLayout: 'list',type: 'result',attachments: [attachment]};const response = {composeExtension: result};return response;}
}

当前版本的Teams并不支持所有的卡片格式,到写这篇博客为止只支持以下几种:

  • Hero card
  • Thumbnail card
  • Adaptive Card
  • Office 365 Connector card

赶快写一个你的app试试看吧

在Teams中对网站的URL特殊解析相关推荐

  1. Teams中阻止上传文件--详解

    之前在另外一篇文章中谈到过如何阻止向Office 365中上传文件,但是针对于Teams的文件上传没有详细介绍过. 这里首先让大家知道两个概念: Teams本身不止是一个软件在独立运行,后面包含了很多 ...

  2. Microsoft Teams 中嵌入SharePoint Online 页面

    前言 我们都知道SharePoint Online是网站页面,那么,她只是一个网站页面么?他还有很好的集成性,比如,集成到Teams中. 正文 1.我们打开Teams,然后找到团队,如下图: 2.点击 ...

  3. 网络推广外包——网络推广外包专员如何从站内优化中提升网站收录

    一般在从事网站优化工作的站长们都会在优化前梳理网站的优化工作,将网站优化工作细分为站内优化与站外优化,前者包括的是一些基本的优化步骤与流程之类,后者则是在链接和优化资源上占据重点,针对这些不同的优化内 ...

  4. 在Microsoft Teams中的Visio协作

    所有Team站点都带有专用文件库,用于存储所有工作组的内容. 您现在可以从桌面或云存储站点将Visio文件上载到此库,例如,您所在Team的资产都集中在一个位置,供具有权限的任何人进行访问.与其他存储 ...

  5. python中nlp的库_用于nlp的python中的网站数据清理

    python中nlp的库 The most important step of any data-driven project is obtaining quality data. Without t ...

  6. ASP.NET 实践:在非层次化控件中显示网站地图的数据

    网站地图数据包含的是层次化信息,每个节点都可以包含零个或多个子节点.TreeView 和 Menu 控件就是专门为层次化数据而设计的.但是,网站地图数据也可以绑定到非层次化控件(如 DropDownL ...

  7. 谈谈如何设计好网站的 URL

    URL设计,这是一个非常重要但是往往容易给忽略的部分,也比较少架构师会去关注或者重视.在整个系统架构中,有时候一个好的URL设计对整个系统会起到一个好的作用. URI和URL及URN URL大家都比较 ...

  8. html站点根目录在哪里,html中的绝对路径URL和相对路径URL及子目录、父目录、根目录...

    html中的绝对路径URL和相对路径URL及子目录.父目录.根目录 发布时间:2014-08-01 11:31:39   作者:佚名   我要评论 绝对URL用于表示Internet中特定文件所需要的 ...

  9. Microsoft Teams中的访客(三)--访客的管控

    相信最近很多企业Teams用起来以后,除了对自己内部人员的管控和监察,也避免不了要对访客进行一些类似的监管. 这里介绍4个方法: 审核日志 Access Review Secure Communica ...

最新文章

  1. boost中的shared_ptr的一些理解
  2. C#中类的属性(Property)
  3. python浮点数运算问题_python基础教程之. 浮点数运算:问题和局限
  4. 天天算法 LeetCode-938-二叉搜索树的范围和
  5. JQuery使用笔记
  6. 从客户端登陆服务器的配置文件,BLE模式和配置文件
  7. dedeCMS版权信息、备案号的调用代码 - 代码大全
  8. Python+OpenCV:Hough圆检测(Hough Circle Transform)
  9. html 图片使用scale,CSS scale()用法及代码示例
  10. java关键字只static
  11. 《战术篇》阵型的设定与编辑,战术命令详解
  12. 学计算机需要会拼音吗,计算机学习拼音
  13. 面试官问你还有什么要问我的吗?
  14. 自主招生认可的英语竞赛有哪些
  15. Python用requests库+BeautifulSoup库+re库获取微博热搜(有详解)
  16. RK3568-ANDROID11-降频DDR
  17. numpy.insert用法以及内插插0的方法
  18. C++STL算法 search你是我的半截的诗
  19. halcon面阵相机标定矫正
  20. [agc015f]Kenus the Ancient Greek

热门文章

  1. 【整理】Spring 常用注解!千万不要错过!
  2. 这些css高级技巧,你知道几个呢
  3. python模型_python 模型的释义
  4. 外卖和快递行业数据_下周一起,整治全面启动!锁定全市外卖、快递行业!
  5. 《Java 高并发》03 线程的生命周期
  6. ux和ui_UI和UX设计师的10种软技能
  7. 01-H5语义化标签
  8. JSONObject中optString和getString等的区别
  9. Eclipse利用Maven2搭建SpringMVC框架的Web工程
  10. linux curl模拟登录网页