如何使用Microsoft Bot Framework bot在Skype中以等宽字体呈现文本?

时间:2016-08-24 13:55:35

标签: skype botframework

我正在使用Microsoft Bot Framework构建Skype机器人。

我已成功接收和发送消息。

我试图以等宽字体格式发回消息。在作为用户的常规Skype客户端中,我至少可以通过两种方式执行此操作,其中一种方法是将{code}标记作为第一行和最后一行。

当我这样做时,我看到传递给我的机器人的消息内容如下所示:

{
   "entities": [],
   "serviceUrl": "https://skype.botframework.com",
   "recipient": {
      "name": "REDACTED",
      "id": "REDACTED"
   },
   "from": {
      "name": "REDACTED",
      "id": "REDACTED"
   },
   "id": "REDACTED",
   "text": "<pre raw_pre=\"{code}\" raw_post=\"{code}\">\nPlease login first.\n\nlogin &lt;PASSWORD&gt;\n\nWHERE\n&lt;PASSWORD&gt; is the password\n<\/pre>",
   "type": "message",
   "channelId": "skype",
   "conversation": {"id": "REDACTED"},
   "timestamp": "2016-08-24T13:46:09.569Z"
}

我注意到消息是HTML,包含在PRE中,PRE有一些特殊的属性。

我使用相同的HTML格式发回一条消息:

{
   "entities": [],
   "serviceUrl": "https://skype.botframework.com",
   "recipient": {
      "name": "REDACTED",
      "id": "REDACTED"
   },
   "from": {
      "name": "REDACTED",
      "id": "REDACTED"
   },
   "id": "REDACTED",
   "text": "<pre raw_pre=\"{code}\" raw_post=\"{code}\">\nPlease login first.\n\nlogin &lt;PASSWORD&gt;\n\nWHERE\n&lt;PASSWORD&gt; is the password\n<\/pre>",
   "type": "message",
   "channelId": "skype",
   "conversation": {"id": "REDACTED"},
   "timestamp": "2016-08-24T13:46:09.569Z"
}

发送消息但文本是常规字体 - 而不是等宽字体。 HTML似乎正在运行 - &lt;标记等......正确呈现。

这是Skype中对话的样子。蓝色背景文本是我在{code}标签中输入的内容:

Skype conversation with Microsoft Bot Framework bot

我可以在消息中包含哪些标记,以使Skype将其呈现为等宽字体?

1 个答案:

答案 0 :(得分:0)

根据documentation,XML格式不支持pre标记。但您可以使用样式与Markdown format

`Please login first.'\n\n\n\n'login <PASSWORD>'\n\n\n\n'WHERE'\n\n'<PASSWORD> is the password`