MS Teams 机器人以用户时区显示时间
MS Teams bot displaying time in user's timezone
我正在使用 Microsoft Teams 的 REST API 构建一个机器人。机器人需要发送 Started at 1:43 PM
或 Ended at 5:30 PM
等事件的状态。此信息将发送到频道,这些频道自然会有属于不同时区的用户。有没有办法发送 ISO_8601 格式的日期时间文本(或任何其他格式)并让 MS Teams 在用户的区域设置和时区中显示时间?
我不知道 Teams 中有任何类似的东西,至少在普通短信中没有。作为一个可能的替代建议,也许日期时间是 UTC,告诉用户是这种情况,并使文本本身成为显示用户本地时间的网页的 hyperlink。
在您的网页中,您可以使用
获取用户的时区
Intl.DateTimeFormat().resolvedOptions().timeZone
然后从那里查找并计算偏移量,向他们显示相关时间。
要真正使您的机器人消息中的文本成为超文本link,您需要发回自适应卡片并对 url 使用 Markdown 格式,它看起来类似于:[我的 Link] (https://whatever.com)(但没有 space,所以它会是 ]( <- 我在这里放了一个 space,否则 Whosebug 本身认为这是一个真实的 link!)
自适应卡片确实提供了一种方法。 TIME
函数采用 ISO_8601 格式的日期时间文本,并以最终用户的语言环境和时区显示时间。
格式:{{TIME(ISO_8601_Formatted_Date_String)}}
可悲的是这只能在附件卡中使用。
我正在使用 Microsoft Teams 的 REST API 构建一个机器人。机器人需要发送 Started at 1:43 PM
或 Ended at 5:30 PM
等事件的状态。此信息将发送到频道,这些频道自然会有属于不同时区的用户。有没有办法发送 ISO_8601 格式的日期时间文本(或任何其他格式)并让 MS Teams 在用户的区域设置和时区中显示时间?
我不知道 Teams 中有任何类似的东西,至少在普通短信中没有。作为一个可能的替代建议,也许日期时间是 UTC,告诉用户是这种情况,并使文本本身成为显示用户本地时间的网页的 hyperlink。
在您的网页中,您可以使用
获取用户的时区Intl.DateTimeFormat().resolvedOptions().timeZone
然后从那里查找并计算偏移量,向他们显示相关时间。
要真正使您的机器人消息中的文本成为超文本link,您需要发回自适应卡片并对 url 使用 Markdown 格式,它看起来类似于:[我的 Link] (https://whatever.com)(但没有 space,所以它会是 ]( <- 我在这里放了一个 space,否则 Whosebug 本身认为这是一个真实的 link!)
自适应卡片确实提供了一种方法。 TIME
函数采用 ISO_8601 格式的日期时间文本,并以最终用户的语言环境和时区显示时间。
格式:{{TIME(ISO_8601_Formatted_Date_String)}}
可悲的是这只能在附件卡中使用。