Kogno
Search…
postback
Captures a click event that contains one or more payloads configured.
The click event that is performed by a user can come from a button, quick_reply or list.

postback(payload=String|Array, &block)

Platforms

Platform
Supported
Messenger
WhatsApp
Telegram

Usage

The example below shows how 3 different click events will be handled:
  • postback"get_started": Click event on Messenger's Get Started button.
  • 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

Reading params

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

set_payload()

It is a global method of the framework, it is used to generate a payload with parameters. Read more.
​

any_postback block

Catch any postback received by a context and returns two parameters payload and payload_params.

Usage

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

Route to context

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"
Read more about this in Context Routing chapter.
Copy link
On this page
postback(payload=String|Array, &block)
Platforms
Usage
Reading params
any_postback block
Usage