无法通过Skype机器人创建新对话

时间:2019-06-13 09:44:53

标签: java botframework skype

我试图与一个人或一群人建立新的对话,所以我创建了一个用于身份验证的Bearer令牌,并将其添加为标头作为Bearer令牌(在邮递员中)。

因此,下一步,我创建一个json脚本,从理论上讲,它可以创建一个新对话。我试图与几个人或一个人建立对话(为此,我向成员或一个人添加了几个人,并将标志isGroup更改为true或false)。

这是1人使用json的示例:

{
    "bot": {
        "id": "<app id>",
        "name": "<bot name>"
    },
    "isGroup": false,
    "members": [
       {
            "id": "<member id>",
            "name": "<member name>"
        }
    ],
    "topicName": "Hello there!"
}

我尝试添加新对话的所有成员的会员ID都是正确的。

我总是得到下一个答复:

{
    "id": "8:live:<skype account name>"
}

对于群组对话,我会得到我添加的第一人称的实时Skype名称。所有请求都发送到https://skype.botframework.com/v3/conversationshttps://smba.trafficmanager.net/apis/v3/conversations,并且响应始终相同。

有人可以告诉我我在做什么错吗?

另外,如果我在正文中添加“活动”:

"activity": 
    { 
        "type": "message", 
        "from": 
        { 
            "id": "<app-id>", 
            "name": "<bot name>" 

        },
        "recipient": 
        { 
            "id": "<member id>", 
            "name": "<member name>" 
        }, 
        "text": "HI" 
    }

我得到下一个答复:

{ 
    "error": 
    { 
        "code": "ServiceError", 
        "message": "Unknown" 
    } 
}

1 个答案:

答案 0 :(得分:0)

因为Skype只允许两个给定用户之间的一个对话,所以看起来像一个简单的用户ID实际上足以使Bot Framework识别该对话。某些频道(包括Skype)允许使用多种ID格式。对于Skype,可以通过两种方式识别每个会话:

  • <数字>:
  • <数字>:

例如,当我在Skype中创建对话时,将获得ID 8:kyle-delaney。我可以使用它向与以下端点的对话发送消息:

https://smba.trafficmanager.net/apis/v3/conversations/8:kyle-delaney/activities

但是,当我的机器人收到来自用户的消息时,会话ID和“发件人” ID都将为29:1CpqzpVMMhfi_2nyS1g2mfHaCxnvGL0sF8LbnGadyR_Y。因此,我也可以使用此端点向同一会话发送消息:

https://smba.trafficmanager.net/apis/v3/conversations/29:1CpqzpVMMhfi_2nyS1g2mfHaCxnvGL0sF8LbnGadyR_Y/activities