我怎样才能使机器人代码独立于频道,(我想要工作中的 facebook 和 DirectLine 的单个机器人代码)

How can I make the bot code independent of the channel,( I want a single bot code for facebook at work and DirectLine)

我的目标是使用单个机器人代码 运行 两个不同频道 DirectLine 和 Facebook@work 上的机器人。我将举一个我在使用 facebook 频道和 directLine 频道时遇到的问题的例子。我遇到的问题如下:

links 或 urls 虽然在 DirectLine 中通过 mark down 支持,但在 facebook 中不支持,我必须单独制作一张英雄卡。 即使我在facebook里用了url through hero card,skype link 也连不上,因为link "sip:***@xxx.com",单独改成xxx。 我无法从 "From.Name".

中获取用户名

那么解决这个问题的最佳方法是什么?我应该简单地为每个通道编写函数吗?这是唯一的选择吗? 我最终想要的是一个独立于用于聊天的频道的机器人代码

在 messagesController 中为 Activity.Channel 使用一个简单的 switch-case,然后格式化给每个频道带来麻烦的 Activity.Text

Facebook 频道不支持降价。所以无法直接从 Facebook 频道连接到 Skype。

Facebook@ work returns 只把对应用户的id 给bot 框架。然后我们必须使用 Facebook api 来获取具有相应 id 的用户名。