如何使用nodejs在chatbot messenger中获取按钮数据响应中的通用模板数据?

时间:2018-04-15 03:54:55

标签: node.js facebook-chatbot

我正在开发一个使用节点和一点diagflow来销售衣服的信使聊天机器人,但是我被困在产品包中,这就是问题所在: 我正在使用带有回传按钮“添加项目”和有效负载“additem_database”的通用模板,将项目添加到我的数据库,但是我很难找到一种方法来识别我正在添加的项目,当我点击,响应是这样的:

    {"object":"page","entry":[{"id":"596254160722097","time":1523729982009,
"messaging":[{"recipient":{"id":"596257560734097"},
"timestamp":1523729982009,
"sender":{"id":"16304620870031321"},
"postback":{"payload":"additem_database",
"title":"add item"}}]}]}
    Received postback for user 1630462087003321 and
 page 596257160724245 with payload 'additem_database' at 1523729982784

这只给了我按钮和有效负载的标题,我认为唯一的解决方案就是将产品的名称命名为按钮标题,如“添加T恤”,然后使用按钮标题在我的数据库中查找并添加到我的购物车,但这不是最好的解决方案,所以,我的问题是:

当我点击按钮时,有一种方法可以将所有通用模板数据作为响应,而不是仅获取按钮数据?或者我可以在按钮响应中使用另一种类型的数据作为标识符吗?

如果您有时间阅读全文,请感谢您。

1 个答案:

答案 0 :(得分:0)

执行此操作的常用方法是在有效负载上附加产品ID或SKU等内容。因此,回发按钮的有效负载类似于“additem_database_09375029740295742”。然后,您只需解析字符串中的产品ID。