messageBack在displayText中转义&符号

时间:2018-02-02 13:06:28

标签: json botframework microsoft-teams

将以下有效负载发送到<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://tempuri.org/" name="TestService"> <wsp:Policy wsu:Id="WSHttpBinding_ITestService_policy"> <wsp:ExactlyOne> <wsp:All> <wsrm:RMAssertion xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"> <wsrm:InactivityTimeout Milliseconds="600000"/> <wsrm:AcknowledgementInterval Milliseconds="200"/> </wsrm:RMAssertion> <wsaw:UsingAddressing/> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> <wsdl:types> <xsd:schema targetNamespace="http://tempuri.org/Imports"> <xsd:import namespace="http://tempuri.org/" schemaLocation="http://rmwebservice:8733/?xsd=xsd0"/> <xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="http://rmwebservice:8733/?xsd=xsd1"/> </xsd:schema> </wsdl:types> <wsdl:message name="ITestService_Echo_InputMessage"> <wsdl:part name="parameters" element="tns:Echo"/> </wsdl:message> <wsdl:message name="ITestService_Echo_OutputMessage"> <wsdl:part name="parameters" element="tns:EchoResponse"/> </wsdl:message> <wsdl:portType name="ITestService" msc:usingSession="true"> <wsdl:operation name="Echo" msc:isTerminating="false" msc:isInitiating="true"> <wsdl:input message="tns:ITestService_Echo_InputMessage" wsaw:Action="http://tempuri.org/ITestService/Echo"/> <wsdl:output message="tns:ITestService_Echo_OutputMessage" wsaw:Action="http://tempuri.org/ITestService/EchoResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding type="tns:ITestService" name="WSHttpBinding_ITestService"> <wsp:PolicyReference URI="#WSHttpBinding_ITestService_policy"/> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="Echo"> <soap12:operation style="document" soapAction="http://tempuri.org/ITestService/Echo"/> <wsdl:input> <soap12:body use="literal"/> </wsdl:input> <wsdl:output> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="TestService"> <wsdl:port name="WSHttpBinding_ITestService" binding="tns:WSHttpBinding_ITestService"> <soap12:address location="http://rmwebservice:8733/TestService"/> <wsa10:EndpointReference> <wsa10:Address>http://rmwebservice:8733/TestService</wsa10:Address> </wsa10:EndpointReference> </wsdl:port> </wsdl:service> </wsdl:definitions> 后:

MSTeamsBot

{ "type":"messageBack", "title":"Sotto Mare Oysteria & Seafood Rating: 4.5", "displayText":"You chose Sotto Mare Oysteria & Seafood Rating: 4.5", "text":"sotto-mare-oysteria-and-seafood-san-francisco", "value":{ "property":"sotto-mare-oysteria-and-seafood-san-francisco" } } 已从

更改
  

你选择了Sotto Mare Oysteria&amp;海鲜评分:4.5

  

Sotto Mare Oysteria&amp; amp;海鲜评分:4.5

请注意,displayText正在转换为&

如何让文本包含&符号而不是其转义序列?

1 个答案:

答案 0 :(得分:0)

我刚刚在iOS版本的Microsoft Teams上测试了这个,而我用来传递displayText有效负载的按钮转义特殊字符,包括&。但是,Microsoft桌面和Web版本的Microsoft团队确实。

这似乎是针对Microsoft Teams客户端的每个平台环境实施,其中一些是逃避&符号,而其他人则没有。

此外,似乎有效载荷,从我所确定的,当卡从机器人传输到客户端时(当我检查并解码卡/按钮构成时,在我的测试实现中通过团队中的网络浏览器版本。)

这与Bot框架本身关系不大,更多的是与用于服务Teams bot聊天的客户端(无论是Windows,浏览器,iOS等)有关。我建议就此问题与MS Teams Support联系。