TLDR; @ bottom
我在Facebook漏洞部分提出以下问题
注意:这是一个平台设计建议而非错误,因为我找不到聊天API反馈门户
目前,我正在构建一个允许用户跟踪目标的聊天机器人。它会说类似于"你有没有在2016年7月12日散步?"并且下方有“是”/“否”按钮
目前为了传递意图,日期和成就布尔我需要模拟一个这样的字符串" == GOAL ==实现? <<< {goal_achieved}>>>,跟踪日期[[[{date_tracked}]]]"并使用正则表达式捕获分隔变量。在有效载荷中的模板化字符串是用户输入变量的其他情况下(例如,{goal_achieved}'用目标变量替换'>> meditated"然后捕获模板变量的正则表达式可能会失败
可以使用回发有效负载来存储JSON编码的字符串,但问题是有效负载字符串被记录到用户输出中,而JSON字符串有点难看和混乱。如果有效负载未记录到用户,则可以轻松解决我所面临的挑战。而是记录按钮的文本以帮助用户确认单击按钮。
如果那是不可能的,有没有其他建议将数据编码到按钮有效负载?
提供了以下答案(Mark Wiltse)
嗨贾斯汀, 不幸的是,此时我们的有效负载结构不支持您尝试实现的功能。根据我的理解,您希望使用Payload通知您的后端用户是否完成了他们的目标'在那个具体日期。我建议您在将结果传递给我们之前为您的按钮创建有效负载响应,这基本上就是您最初的JSON想法。 我知道这有点麻烦,但传回的有效负载响应与信使线程提供的文本无关。 如果您担心用户之前提供过您的正则表达式问题,我建议您也尝试清理字符串。如果先前的用户数据被清理以避免任何regex / json解析问题,您应该能够实现此功能。 由于这是一个实施问题,我将不得不将此报告关闭为无效。如果您仍在寻找有关实施此流程的其他见解和具体提示,请发布到我们的堆栈溢出,我们有Facebook工程师和各种社区成员也参与其中。 http://facebook.stackoverflow.com/ 用你的信使机器人照顾和祝福。 标记
这句话特别不清楚:
我知道这有点麻烦,但有效负载响应 传回的内容与提供的文本无关 信使线程。
TLDR; 任何人都可以告诉我如何防止按钮记录有效负载字符串,以便我可以使用它将JSON传递给我的应用程序,而无需用户看到它?
答案 0 :(得分:2)
请务必在sendTextMessage()
来电中注明receivedPostback()
:
function receivedPostback(event){
sendTextMessage(senderID, event.postback.payload);
}
答案 1 :(得分:1)
根据我的理解,您说当按下按钮时,PAYLOAD而不是按钮的文字会显示出来。
您是否正在定义这样的按钮?
Chart
我建议删除任何会破坏有效负载解析的特殊字符。只要特殊字符对用户体验不是至关重要,这可能是一个很好的解决方案。
如果这不能解决您的问题:
您可以添加一个屏幕截图,显示您正在按的按钮,以及您正在谈论的日志消息吗?根据我的理解,您说当按下按钮时,PAYLOAD而不是按钮的文本会显示出来。对我来说情况并非如此,当我按下按钮时,我的按钮文字显示出来。