Rest 使用DirectLineV3,如何向用户发送消息?

Rest 使用DirectLineV3,如何向用户发送消息?,rest,botframework,direct-line-botframework,Rest,Botframework,Direct Line Botframework,我正在实现一个DirectLine客户端,用于通过Twilio和BotFramework连接WhatsApp。我已经能够: 创建对话 听对话的websocket 将活动发送到bot 就我的一生而言,我不知道如何将活动发送到DirectLine客户端,以便它将其转发给用户。换句话说,如何在DL客户端的websocket上弹出一些活动 在机器人方面,我正在做的是: 要求客户端在bot和用户之间的DirectLine中创建对话(我使用电话号码作为收件人/发件人ID) 使用新对话及其serviceUrl

我正在实现一个DirectLine客户端,用于通过Twilio和BotFramework连接WhatsApp。我已经能够:

  • 创建对话
  • 听对话的websocket
  • 将活动发送到bot
  • 就我的一生而言,我不知道如何将活动发送到DirectLine客户端,以便它将其转发给用户。换句话说,如何在DL客户端的websocket上弹出一些活动

    在机器人方面,我正在做的是:

  • 要求客户端在bot和用户之间的DirectLine中创建对话(我使用电话号码作为收件人/发件人ID)
  • 使用新对话及其
    serviceUrl
    将活动从bot发布给用户
  • 我尝试了一系列不同的身份验证令牌来实现这一点,最接近的是使用对话的DirectLine令牌作为承载身份验证:

    POST https://directline.botframework.com/v3/directline/conversations/CONVERSATION_ID/activities
    {
      "type": "message",
      "text": "message",
      "from": { "id": "whatsapp:BOT_PHONE_NUMBER" },
      "recipient": { "id": "whatsapp:USER_PHONE_NUMBER" }
    }
    
    这导致此活动在websocket中弹出:

    {
      "channelId": "directline", 
      "conversation": {"id": "CONVERSATION_ID"}, 
      "from": {"id": "whatsapp:BOT_PHONE_NUMBER"}, 
      "id": "CONVERSATION_ID|0000006", 
      "recipient": {
        "id": "BOT_ID@something", 
        "name": "Bot"
      }, 
      "serviceUrl": "https://directline.botframework.com/", 
      "text": "pls", 
      "timestamp": "2019-08-26T23:14:13.3099739Z", 
      "type": "message"
    }
    
    这显然是无用的,因为用户的电话号码丢失了?!相反,“收件人”被改写为bot的

    我的问题是:实现这一目标的标准方法是什么?

    我可以完全绕过BF,给我的客户打电话,让它向用户发送消息。但是,这意味着此通道的实现与所有其他通道不同。如果是这样的话,那么WebSocket有什么意义呢