Teams Bot如何判断用户所在的时区

本文探讨了在Teams Bot开发中如何判断用户时区的问题,指出Teams提供的payload包含用户当前的本地时间和UTC时间差,但并不直接提供时区信息。通过Graph API结合Outlook API可以获取更详细的时间信息,包括时区、日期格式偏好等,但需用户额外授权。未来,Teams计划简化Graph API的授权流程。
摘要由CSDN通过智能技术生成

一说到时间,就会联想到时区,夏令时等头痛的问题,不同国家有不同国家的规定。如果你希望你的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
你可以按照以下步骤在VS2017中开发Teams Bot: 1. 安装开发工具:首先,确保你已经安装了Visual Studio 2017和Teams开发工具包。你可以从Visual Studio安装程序中选择"ASP.NET和Web开发"工作负载,以及"Microsoft Teams开发工具"选项。 2. 创建项目:在Visual Studio中,选择"文件" -> "新建" -> "项目",然后选择"ASP.NET Web应用程序(.NET Framework)"模板。给你的项目起个名字,并选择保存位置。 3. 选择模板:在"新建ASP.NET Web应用程序"对话框中,选择"空"模板,并勾选上"Web API"复选框。点击"确定"按钮创建项目。 4. 安装Teams NuGet包:在解决方案资源管理器中,右键点击你的项目并选择"管理NuGet程序包"。在NuGet包管理器中,搜索并安装"Microsoft.Bot.Builder.Teams"包。 5. 添加Bot代码:打开`Startup.cs`文件,并在`ConfigureServices`方法中添加以下代码: ```csharp services.AddSingleton<ITeamsActivityHandler, YourBotActivityHandler>(); ``` 这将注册你的Bot活动处理程序。 6. 创建Bot活动处理程序:在解决方案资源管理器中,右键点击你的项目并选择"添加" -> "新建文件夹"。创建一个名为"Bot"的文件夹。然后,在该文件夹中添加一个新类文件,命名为"YourBotActivityHandler.cs"(你可以自己取个合适的名字)。 7. 在`YourBotActivityHandler.cs`文件中,继承`TeamsActivityHandler`类,并实现你的Bot的逻辑。你可以重写父类的方法来处理不同类型的活动,比如消息、会议等。 8. 配置Bot凭据:打开`Web.config`文件,并在`appSettings`节中添加以下键值对: ```xml <add key="MicrosoftAppId" value="YOUR_APP_ID" /> <add key="MicrosoftAppPassword" value="YOUR_APP_PASSWORD" /> ``` 将"YOUR_APP_ID"和"YOUR_APP_PASSWORD"替换为你的Bot的应用程序ID和密码。 9. 调试和部署:你可以通过按下"F5"键来调试你的Bot。当它在本地运行时,你可以使用Bot Framework Emulator进行测试。当你准备好部署时,你可以发布到Azure或者任何支持ASP.NET的托管服务中。 这些是使用VS2017开发Teams Bot的基本步骤。你可以根据你的需求和功能来扩展和定制你的Bot。希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值