button
A text followed by one or more buttons.
Platform | Supported | Native Name |
---|---|---|
Messenger | ||
WhatsApp | ||
Telegram |
@reply.button(
"Hello, how can I help today?",
[
{
title: "Create an account",
payload: "profile/create_account"
},
{
title: "Read TOS",
payload: "read_tos"
},
{
title: "Feature Product",
payload: set_payload("products/view", { product_id: 10 })
}
]
)
user.notification.button(
"Hello, how can I help today?",
[
{
title: "Create an account",
payload: "profile/create_account"
},
{
title: "Read TOS",
payload: "read_tos"
},
{
title: "Feature Product",
payload: set_payload("products/view", { product_id: 10 })
}
]
)
user.notification.send()
In either case, the click event will be captured by a postback block (if declared) in the context defined in the payload route.
"read_tos"
"profile/create_account"
set_payload("products/view", { product_id: 10 })
Name | Description |
---|---|
text | Required. The text displayed above the buttons. |
buttons | Required.
One or several buttons that can be payloads or links in some platforms. |
params | Optional.
Extra parameters that may vary between platforms. |
Below are some unified or built-in parameters from this framework.
Regardless of the value of
config.typed_postbacks
in the main configuration, this feature can be enabled/disabled independently passing this parameter with true or false.@reply.button(
"Hello, how are you today?",
[
{
title: "Good",
payload: "good_mood"
},
{
title: "Bad",
payload: "bad_mood"
}
],
{ typed_postbacks: true }
)
Only available in Telegram, it allows displaying a defined amount of buttons in rows.
@reply.button(
"Choose a number from 1 to 10",
(1..10).map{|number|
{
title: "Number: #{number}",
payload: set_payload(:number_response,{ number: number})
}
},
{ slice_replies: 3 }
)
Last modified 10mo ago