【问题标题】:Botframework on Microsoft-Teams: Issue about sending reply message to userMicrosoft-Teams 上的 Botframework:关于向用户发送回复消息的问题
【发布时间】:2017-10-18 02:35:32
【问题描述】:

我在 Botframework 中开发了一个机器人,并添加了 Microsoft Teams 频道。

当用户在 MS-Teams 中向聊天机器人写入“hi”时,我的 webhook 会收到以下消息:

{
  "text": "hi",
  "textFormat": "plain",
  "type": "message",
  "timestamp": "2017-05-18T10:05:07.742Z",
  "id": "1495101906391",
  "channelId": "msteams",
  "serviceUrl": "https://smba.trafficmanager.net/emea-client-ss.msg/",
  "from": {
    "id": "29:1hyY0WDlv1ehVaSqIA-anqB9CMHoukm59yNjxcVxjTnb5s2B1_HtUI6GFmS1vC6w2XufYPX7L03xlY1qEEQtT2w",
    "name": "xxx"
  },
  "conversation": {
    "id": "a:1ivnXQ6qsiT1hLo26tk4vL1vgUcanbkRm3mMsDj48HkQSKFwr87HCKUFvFoSqjMdGICUBYzds5MR1_kIBCJRY0GZyZ9fa3Yd3MXmlHUhLVA7XaXezOO5u7CaLTNghSiEM"
  },
  "recipient": {
    "id": "28:4faa7ac7-bb35-4737-b49a-e21bbc3fb65d",
    "name": "xxx"
  },
  "entities": [
    {
      "locale": "it-IT",
      "country": "IT",
      "platform": "Mac",
      "type": "clientInfo"
    }
  ],
  "channelData": {
    "tenant": {
      "id": "5cf8dc9b-6f57-4eff-a404-5518dc1826d6"
    }
  }
}

为了回复用户问题,我使用以下端点: https://smba.trafficmanager.net/emea-client-ss.msg/v3/conversations/29:1hyY0WDlv1ehVaSqIA-anqB9CMHoukm59yNjxcVxjTnb5s2B1_HtUI6GFmS1vC6w2XufYPX7L03xlY1qEEQtT2w/activities/

与身体:

{
  "action": "message",
  "channelData": {
    "tenant": {
      "id": "5cf8dc9b-6f57-4eff-a404-5518dc1826d6"
    }
  },
  "channelId": "msteams",
  "conversation": {
    "id": "a:1ivnXQ6qsiT1hLo26tk4vL1vgUcanbkRm3mMsDj48HkQSKFwr87HCKUFvFoSqjMdGICUBYzds5MR1_kIBCJRY0GZyZ9fa3Yd3MXmlHUhLVA7XaXezOO5u7CaLTNghSiEM"
  },
  "entities": [
    {
      "locale": "it-IT",
      "country": "IT",
      "platform": "Mac",
      "type": "clientInfo"
    }
  ],
  "from": {
    "id": "28:4faa7ac7-bb35-4737-b49a-e21bbc3fb65d",
    "name": "XXX"
  },
  "id": "14950405460679",
  "replyToId": "1495040546067",
  "inputHint": "ignoringInput",
  "locale": "it-IT",
  "localTimestamp": "2017-05-17T17:02:25.716Z",
  "recipient": {
    "id": "29:1hyY0WDlv1ehVaSqIA-anqB9CMHoukm59yNjxcVxjTnb5s2B1_HtUI6GFmS1vC6w2XufYPX7L03xlY1qEEQtT2w",
    "name": "XXX"
  },
  "serviceUrl": "https://smba.trafficmanager.net/emea-client-ss.msg/",
  "text": "hi Antonio",
  "textFormat": "markdown",
  "type": "message",
  "timestamp": "2017-05-19T17:02:25.716Z"
}

我收到以下正文的 400 错误

 {   
     "error": {
     "code": "ServiceError",
     "message": "Unsupported conversation type"   
     } 
 }

回复消息有什么问题?端点和主体是否正确?

提前致谢

【问题讨论】:

    标签: rest botframework microsoft-teams


    【解决方案1】:

    serviceUrl 端点并不意味着直接发布到。 Bot Framework SDK(和底层 REST API)为您完成了这项工作。您应该发布到的唯一端点是在 Bot Framework 门户中为您的机器人指定的“消息传递端点” - 通常格式为 https://<your-bot-endpoint>/api/messages

    没有看到更多您的代码,我无法更具体,而且我从未尝试直接发布到serviceUrl 以查看会发生什么,但您观察到的与我的预期并不矛盾。

    这是发给机器人的示例消息:

    {
        "text": "hello",
        "textFormat": "plain",
        "type": "message",
        "timestamp": "2017-05-19T19:34:57.1Z",
        "id": "1495222496101",
        "channelId": "msteams",
        "serviceUrl": "https://smba.trafficmanager.net/amer-client-ss.msg/",
        "from": {
            "id": "29:1b-XXgcDBMdLhH_MyEbE8u4C6re5IXsyM4diL4_6RBnOG-TCUm-YPsBGMq_cltQkc_paI8g5gsIVT6AgWFZigs5E49-i0F0OxpODhGY-IX08",
            "name": "Bill Bliss"
        },
        "conversation": {
            "id": "a:1X7RpEdoNRlujstg0zjaq_ouNBRrfN_brwVTHRzIdSEhAwS0XPa8uMlGl1Vrw4tOqIVLwN6WzWK1WyooWrPyVpsEcciyOJRI1snA_RMvUkejB39HCAZPtoJLUpgogTm_d"
        },
        "recipient": {
            "id": "28:71d82610-942e-4115-b6a7-2ac1992ecb23",
            "name": "Build Bot  DEV "
        },
        "entities": [
            {
                "locale": "en-US",
                "country": "US",
                "platform": "Windows",
                "type": "clientInfo"
            }
        ],
        "channelData": {
            "tenant": {
                "id": "72f988bf-86f1-41af-91ab-2d7cd011db47"
            }
        }
    }
    

    这是来自机器人的回复:

    {
        text: 'hello',
        textFormat: 'plain',
        type: 'message',
        timestamp: '2017-05-19T20: 00: 33.764Z',
        entities: [{
            locale: 'en-US',
            country: 'US',
            platform: 'Windows',
            type: 'clientInfo'
        }],
        sourceEvent: {
            tenant: {
                id: '72f988bf-86f1-41af-91ab-2d7cd011db47'
            }
        },
        attachments: [],
        address: {
            id: '1495224034790',
            channelId: 'msteams',
            user: {
                id: '29: 1b-XXgcDBMdLhH_MyEbE8u4C6re5IXsyM4diL4_6RBnOG-TCUm-YPsBGMq_cltQkc_paI8g5gsIVT6AgWFZigs5E49-i0F0OxpODhGY-IX08',
                name: 'BillBliss'
            },
            conversation: {
                id: 'a: 1X7RpEdoNRlujstg0zjaq_ouNBRrfN_brwVTHRzIdSEhAwS0XPa8uMlGl1Vrw4tOqIVLwN6WzWK1WyooWrPyVpsEcciyOJRI1snA_RMvUkejB39HCAZPtoJLUpgogTm_d'
            },
            bot: {
                id: '28: 71d82610-942e-4115-b6a7-2ac1992ecb23',
                name: 'BuildBotDEV'
            },
            serviceUrl: 'https: //smba.trafficmanager.net/amer-client-ss.msg/'
        },
        source: 'msteams',
        agent: 'botbuilder',
        user: {
            id: '29: 1b-XXgcDBMdLhH_MyEbE8u4C6re5IXsyM4diL4_6RBnOG-TCUm-YPsBGMq_cltQkc_paI8g5gsIVT6AgWFZigs5E49-i0F0OxpODhGY-IX08',
            name: 'BillBliss'
        }
    }
    

    【讨论】:

    • 如果机器人想要与 MS-Teams 通信(即,如果机器人想要通过 MS-Teams 通道向用户发送消息),应该使用哪个 REST 端点?你也可以给我一个样本身体吗?提前致谢
    • 同一端点用于所有 Bot Framework 通道 - 门户中指定的消息传递端点。消息中的channelId 字段指示消息到达的通道。我已经更新了我的答案,其中包含 to 机器人的示例消息和 来自 该机器人的回复。
    【解决方案2】:

    您的端点 URL 应该包含对话 ID,而不是用户 ID。 29:.. 是用户 ID。 尝试使用对话 ID 发送相同的有效负载,对话 ID 位于:"conversation": {"id": ".."}

    因此,在您的情况下,URL 应该是: https://smba.trafficmanager.net/emea-client-ss.msg/v3/conversations/a:1ivnXQ6qsiT1hLo26tk4vL1vgUcanbkRm3mMsDj48HkQSKFwr87HCKUFvFoSqjMdGICUBYzds5MR1_kIBCJRY0GZyZ9fa3Yd3MXmlHUhLVA7XaXezOO5u7CaLTNghSiEM/activities/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 2020-10-15
      • 2020-09-05
      • 1970-01-01
      相关资源
      最近更新 更多