postback
Captures a click event that contains one or more payloads configured.
Platform | Supported |
---|---|
Messenger | |
WhatsApp | |
Telegram |
The example below shows how 3 different click events will be handled:
postback
"yes"
: Click event on "Of course!" button that has been sent as reply in the previous block.postback
"no"
: Click event on "Not really 🤷🏻♂️" button that has been sent as reply in the first block.
class MainContext < Conversation
def blocks
postback "get_started" do
@reply.text("Hello!")
@reply.quick_reply(
"Is it clear to you how postbacks work?",
[
{
title: "Of course!",
payload: "yes"
},
{
title: "Not really 🤷🏻♂️",
payload: "no"
}
]
)
end
postback "yes" do
@reply.text "Awesome!"
@reply.text "We've put a lot of effort into writing this documentation 💪"
end
postback "no" do
@reply.text "No problem, continue reading and you will got it..."
end
end
end
The
postback
block can receive parameters that are sent as part of the payload.Next we will implement the same example as above, but using parameters:
class MainContext < Conversation
def blocks
postback "get_started" do
@reply.text("Hello!")
@reply.quick_reply(
"Is it clear to you how postbacks work?",
[
{
title: "Of course!",
payload: set_payload("understood", {response: "yes"})
},
{
title: "Not really 🤷🏻♂️",
payload: set_payload("understood", {response: "no"})
}
]
)
end
postback "understood" do |params|
response = params[:response]
if response == 'yes'
@reply.text "Awesome!"
@reply.text "We've put a lot of effort into writing this documentation 💪"
elsif response == 'no'
@reply.text "No problem, continue reading and you will got it..."
end
end
end
end
It is a global method of the framework, it is used to generate a payload with parameters. Read more.
Catch any
postback
received by a context and returns two parameters payload
and payload_params
.class MainContext < Conversation
def blocks
any_postback do |payload, payload_params|
if payload == "get_started"
@reply.text("Hello!")
@reply.quick_reply(
"Is it clear to you how postbacks work?",
[
{
title: "Of course!",
payload: "yes"
},
{
title: "Not really 🤷🏻♂️",
payload: "no"
}
]
)
elsif payload == "yes"
@reply.text "Awesome!"
@reply.text "We've put a lot of effort into writing this documentation 💪"
elsif payload == "no"
@reply.text "No problem, continue reading and you will got it..."
end
end
end
end
A
payload
can include a route to a postback
located in a different context than the current context.The format of a payload containing a route is as follows:
"context_name/payload"
Last modified 8mo ago