虽然我们没有找到解决方案
our previous question
关于将我们的机器人注册到Skype for Business channel(以下简称SfB),我们尝试创建全新的机器人,并为全新用户重新注册到SfB channel。创建和注册过程中没有错误。
现在我们可以看到
Activity
在调试模式下,当Visutal Studio 2017(Cloud Explorer>Attach Debugger)连接到Azure上部署的bot时,我们只观察到以下类型的活动:
会话更新
“或”
内转换
“每次我们通过SfB向我们的机器人发送消息。
更新
bot是使用链接到Azure和MSDN订阅的帐户创建和注册的,但是该帐户不是我们Azure Active Directory的一部分。SfB使用的发件人和bot帐户是我们Azure Active Directory的一部分。
如果我从同时拥有bot本身的帐户所拥有的Azure门户创建专用Azure Active Directory,则通过SfB的委托适用于在此专用Azure Active Directory中创建的帐户。
结束更新
我们现在可以检查Azure或SfB的哪些日志或设置,以使通信最终正常工作?
代表机器人的用户是否有任何特殊要求,需要进行双重检查?
如果bot的所有者对定义了bot受众用户的Azure Active Directory没有权限,那么该bot是否还有其他安全设置?
请参阅序列化json活动的示例:
{
"type": "conversationUpdate",
"id": "6d5f79c9-9a89-4606-92cb-9ead49405865",
"timestamp": "2017-12-01T14:13:53.3958935Z",
"serviceUrl": "https://webpooldb40r04.infra.lync.com/platformservice/.../botframework",
"channelId": "skypeforbusiness",
"from": { "id": "sip:me@us.com", "name": "LastName, Me" },
"conversation": { "isGroup": true, "id": "YzkxZDQ2MmQjc2lwOmFmZmJib3RAYmx1ZWxpbmtz..." },
"recipient": { "id": "sip:ourbot@us.info", "name": "sip:ourbot@us.info" },
"membersAdded": [],
"membersRemoved": [ { "id": "sip:me@us.com", "name": "LastName, Me" } ],
"attachments": [],
"entities": []
}
和
{
"type": "endOfConversation",
"id": "4b485bcf-59c8-446f-9d56-74dda973db25",
"timestamp": "2017-12-01T14:13:53.4115031Z",
"serviceUrl": "https://webpooldb40r04.infra.lync.com/platformservice/.../botframework",
"channelId": "skypeforbusiness",
"from": { "id": "sip:ourbot@us.info" },
"conversation": { "isGroup": true, "id": "YzkxZDQ2MmQjc2lwOmFmZmJib3RAYmx1ZWxpbmtz..." },
"recipient": { "id": "sip:ourbot@us.info", "name": "sip:ourbot@us.info" },
"membersAdded": [],
"membersRemoved": [],
"attachments": [],
"entities": []
}
评论:
1) 机器人注册时间超过一周。
2) 我们的控制器包含尽可能少的代码,以避免任何可能影响测试的问题:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity != null)
{
if (activity.Type == ActivityTypes.Message)
{
var reply = activity.CreateReply("Reply");
using (var client = new ConnectorClient(new Uri(reply.ServiceUrl)))
{
await connectorClient.Conversations.ReplyToActivityAsync(reply);
}
}
}
return Request.CreateResponse(HttpStatusCode.OK);
}
3) 正在为WebChat频道正确生成响应:
4) 在bot分析中,我们可以看到WebChat和SfB的传入消息和用户
5) 如果我们试图对类型为“conversationUpdate”或“endOfConversation”的活动做出回应,那么我们观察到:
{"Conversation does not exist"} Microsoft.Rest.HttpOperationException
6) 如果我们尝试执行创建新对话的代码,那么我们会得到:
{"BVD operation failed with 404"} Microsoft.Rest.HttpOperationException
第5)点和第6)点是意料之中的,仅为说明而附加