一说到时间,就会联想到时区,夏令时等头痛的问题,不同国家有不同国家的规定。如果你希望你的Teams Bot可以判断出当前用户所在的时区,从而可以针对性的进行一些处理时,你要做好心理准备,这个复杂程度远远超过你的想象。因为一个用户这次在一个时区内登入Teams,下一次可能就在另一个时区了。
好消息是Teams已经帮我们做了很多事情,当Teams发送请求到我们的Bot时,payload里已经带了一些时间信息。我在我之前的一篇文章中也提到过。下面是一个标准的request body
{
"name": "composeExtension/fetchTask",
"type": "invoke",
"timestamp": "2019-06-17T14:32:04.956Z",
"localTimestamp": "2019-06-18T00:32:04.956+10:00",
"id": "f:1361493733941541435",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/apac/",
"from": { },
"conversation": {
"isGroup": true,
"conversationType": "channel",
"tenantId": "aece5000-341d-493a-841d-f67e417f1447",
"id": "19:bf1c