在DialogFlow(API.AI)中集成电报Bot的消息格式

时间:2019-01-18 16:19:21

标签: dialogflow actions-on-google

将DialogFlow代理与Telegram Bot成功集成之后。 我发现双星 "foreignCurrencyExchangeRateOrTenderExchangeOrTimeClockTransaction" : [ { "reasonCode" : "Store Open", "systemCycleTypeOrNoSale" : { "name" : "{http://www.datavantagecorp.com/xstore/}SystemCycleType", "declaredType" : "java.lang.String", "scope" : "javax.xml.bind.JAXBElement$GlobalScope", "value" : "Store Open", "nil" : false, "globalScope" : true, "typeSubstituted" : false } } ], 不能将文本设置为粗体。

我知道在sendMessage API中将parse_mode设置为Markdown可以正确解析文本,但是DialogFlow集成在集成时不会显示此类选项。

1 个答案:

答案 0 :(得分:1)

要格式化电报消息,您需要发送一个额外的参数parse_mode,您可以将其设置为html并以所需的方式格式化文本,例如粗体斜体删除线

要格式化来自Dialogflow的静态电报消息,您需要在响应中设置电报的自定义有效载荷,如下图所示

Static Dialogflow formatted response for Telegram

要格式化来自Webhook的消息,您需要在响应正文中附加Telegram的自定义有效负载,最终看起来像这样。

{
"fulfillmentText": "",
"fulfillmentMessages": [{
    "text": {
        "text": [""]
    }
}],
"payload": {
    "telegram": {
        "text": "<b>hello formatted custom telegram text</b>",
        "parse_mode": "html"
    }
},
"outputContexts": []

}

您可以在这里找到有关Dialogflow丰富消息的更多信息:https://cloud.google.com/dialogflow/docs/intents-rich-messages

尽管这确实是很晚的反应,但我希望它能帮助那些现在需要它的人。