我想在我的Facebook Messenger机器人Ruby中定义一个'Payload'。我的用例是,当用户看到结构化的内容(一个带按钮的故事)并单击按钮,而不是将它们发送到URL时,我想打我的webhook并返回更多结构化的内容。定义Payload Facebook Messenger Ruby
所以,我已经尝试了几次迭代,不知道我在哪里被绊倒。
messaging_event["entry"].first["messaging"].each do |msg|
puts msg
sender = msg["sender"]["id"]
if msg["message"] && msg["message"]["text"]
payload = msg["message"][“payload”]
我做了添加文本非常类似的东西,这是:
post '/webhook/' do
messaging_event = JSON.parse(request.body.read)
puts messaging_event
messaging_event["entry"].first["messaging"].each do |msg|
puts msg
sender = msg["sender"]["id"]
if msg["message"] && msg["message"]["text"]
text = msg["message"]["text"]
puts "Sender ID: #{sender}, Text: #{text}"
所以,在这一点上,我不知道如果我需要,我加入了短信活动开始进一步像变形点焊的有效载荷:
def payload(sender, payload)
data = {
recipient: { id: sender },
message: payload
}
send_message(data)
end
或者,如果我只需要创建一个变量,并调用就像我的模块对象内的变量:
module Messages
SIMPLE_ONE_BUTTON_PAYLOAD = {
"attachment":{
"type":"template",
"payload":{
"template_type":"button",
"text":"Here's a simple button message",
"buttons":[
"type":"postback",
"title":"Button One",
"payload":"[variable I need to call]",
]
}
}
}
end
所以,这里真的有两件事 - 我是否需要负载消息传递事件并定义有效负载以及在对象内需要调用什么?这里的任何想法或反馈将会非常有帮助。提前致谢!
不知道我是不是太晚了,但是我创建了一个gem来处理这些用例:https://github.com/tinkerbox/message_quickly – Jaryl