在前面的随笔里,我记录了如何在Azure Bot Services中运行一个对话机器人,并且利用在线的代码编辑器和在线的测试验证了我们给机器人提供的提问/回答内容。

    可是,机器人不能只通过Azure里或QnA Maker站点里的测试页面访问吧?最终我们肯定是要让机器人在很多对话场景来使用的。因此,除了在代码内直接调用机器人之外,微软还提供了很多“热门”对话应用的连接器来引入机器人。

clip_image001

    看,有Cortana,有邮件,有短信,有Slack,有Facebook……知道为啥我给热门打引号了吧?能够快速把机器人发布出来使(zhuang)用(b)的方法,首推Web页面,其次是Skype for Business。接下来就看看如何让别人也能和你的机器人交(che)流(0)了。

    先说说Web方式。机器人创建之后,默认就有了Web Chat方式。只要服务和调用正常,使用Web Chat方式简直是……太简单到令人发指……

clip_image001[6]

    点击进入Web Chat,会显示以上内容,密钥用于指定你需要访问的机器人,而页面只需要用iframe去调用这个URL就可以了。究竟有多简单呢?简单到你打开notepad,手动输入粘贴以下几行。

clip_image001[8]

    然后用浏览器打开,就能调戏机器人了。

clip_image001[10]

    把这个页面放到Internet上的Web站点,就能在网上访问了。当然,问题也不是没有的。只要有Key就能调用,谁都可以调戏机器人,那么有限的消息数…那都是钱啊…

    写这么简单的随笔会被人打的,所以我继续试试把机器人连接到Skype for Business。

    开始之前,一样是启用Sky for Business的通道。

clip_image001[12]

    添加完毕后,Azure Bot Services 就会告诉你怎么连接机器人到你的Skype for Business 租户。点击“了解操作方法”访问:https://skypeappregistration.azurewebsites.net/bot/9b2d410b-324d-4ae7-8a83-08bd8a05f77b

    这里给出了详细的操作步骤。如果之前通过PowerShell管理过O365订阅就会非常熟悉这个套路。

    为了让机器人能在你的Skype for Business里面说话,你得把这个服务的App ID加入到Skype for Business 订阅的受信应用中,然后再给机器人分配一个用来通信的URI,也就是SIP 地址。

    那么,这个神秘的App ID是多少呢?到机器人的配置信息里一看就有了。

image

    关于应用终结点的更进一步信息,可以访问开发站点MSDN:https://msdn.microsoft.com/en-us/skype/trusted-application-api/docs/trustedapplicationendpoint

    废话不多,上PowerShell。和大多PowerShell扩展一样,敲命令之前,首先要安装Skype for Business的模块。

image

    然后,需要为远程管理输入O365 Admin的管理员凭据。完成后,可以查看凭据是否获得。接着使用这个凭据建立CSOnline(Skype for Business)的会话。注意站点DNS解析问题,在公司折腾半天发现域名解析有问题,强制用了八炸的DNS搞定。

image

    会话建立后,一样可以使用命令行验证一下。然后导入这个管理会话。


image

    接下来就是关键一步了。新建一个SfB的App终结点,并且为终结点分配sip地址。换一个说法就是,创建一个SIP地址,让跟这个地址说话的都发送到特定的应用终结点去。

    回到O365的管理站点,就能看到多了一个用户:

image

    完成后,就可以去Sky for Business调戏机器人啦。

image image

    是不是很简单呢?

    目前Azure Bot Services暂时只支持Skype for Business Online或混合部署,暂时不支持传统部署的SfB服务器。可参考:https://docs.microsoft.com/en-us/bot-framework/bot-service-channel-connect-skypeforbusiness 

    后续如果有时间或者我能学明白,再继续我们的机器人之旅。