首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Botframework on Microsoft-Teams:向用户发送回复消息的问题

Botframework on Microsoft-Teams:向用户发送回复消息的问题
EN

Stack Overflow用户
提问于 2017-05-18 18:18:43
回答 2查看 760关注 0票数 1

我已经在Botframework中开发了一个机器人,并添加了微软团队的频道。

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

代码语言:javascript
复制
{
  "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/

带正文:

代码语言:javascript
复制
{
  "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错误,正文如下

代码语言:javascript
复制
 {   
     "error": {
     "code": "ServiceError",
     "message": "Unsupported conversation type"   
     } 
 }

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

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2017-05-19 00:08:05

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

如果没有看到更多的代码,我就不能说得更具体了,而且我从来没有尝试过直接发布到serviceUrl来查看发生了什么,但是您观察到的结果并不与我预期的不一致。

下面是一个示例消息,用于一个机器人:

代码语言:javascript
复制
{
    "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"
        }
    }
}

这是来自机器人的回复

代码语言:javascript
复制
{
    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'
    }
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-12 17:30:34

您的终结点URL应具有对话ID,而不是用户ID。29:..是用户ID。请尝试使用位于以下位置的对话ID发送相同的负载:"conversation": {"id": ".."}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44045044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档