Skip to main content

Send Message With Buttons

Request

You need to send a POST request to:

https://yoai.yophone.com/api/pub/sendMessage

Request body params format (JSON)

  • to (required):
    The unique identifier for the target chat or the username of the target channel.

  • text (required):
    The text of the message to be sent.

  • buttons (required):
    An object containing the button configuration.

    • grid (optional):
      Number of buttons per row (default is 1).

    • options (optional):
      A list of {label:"label","value":"value"} objects.

    • inline_buttons (optional):
      A list of {label:"label", "data":"data", "url":"url"} objects to select up to 20 options.

Behavior of Inline Buttons

  • If you pass a url in inline_buttons, clicking the button will open the specified webpage.

  • If you pass a data field in inline_buttons, clicking the button will trigger a callbackData event, which you can listen to using:

    myBot.on("callbackData", (ctx) => console.log(ctx.callbackData));

    Here, ctx.callbackData will contain the value of the data field from the clicked button.

Request example (POST):

Expecting Message format

{
"to": "123456789",
"text": "Choose an option:",
"buttons": {
"grid": 2,
"options": [
{
"label": "Option 1",
"value": "option_1"
},
{
"label": "Option 2",
"value": "option_2"
}
],
"inline_buttons": [
{
"label": "Visit Website",
"url": "https://example.com"
},
{
"label": "More Info",
"data": "more_info"
}
]
}
}

Request example

curl -X POST https://yoai.yophone.com/api/pub/sendMessage \
-H "Content-Type: application/json" \
-H "X-YoAI-API-Key: your YoAI api token" \
-d '{
"to": "123456789",
"text": "Choose an option:",
"buttons": {
"grid": 2,
"options": [
{
"label": "Option 1",
"value": "option_1"
},
{
"label": "Option 2",
"value": "option_2"
}
],
"inline_buttons": [
{
"label": "Visit Website",
"url": "https://example.com"
},
{
"label": "More Info",
"data": "more_info"
}
]
}
}'

Response Example:

The response is JSON data with status code 200

Message response format

{
"success": true,
"code": 200,
"data": {}
}