Telegram Send Message with Buttons

From sgcWebSockets 4.4.6, the telegram client has been improved to support send messages with buttons (only supported when you login as a bot).

The methods to send a message have been modified to add a new parameter where you can send the Callback and URL Buttons.

Before you send a message create an instance of the class TsgcTelegramReplyMarkupInlineKeyboard and call the method AddButtonTypeCallback or AddButtonTypeUrl for every button you want to create.


Button Callback 

Create a new message asking the user if likes or not the message. Process the response using OnNewCallbackQuery event. 

oReplyMarkup := TsgcTelegramReplyMarkupInlineKeyboard.Create;
Try
  oReplyMarkup.AddButtonTypeCallback('Yes', 'I like it');
  oReplyMarkup.AddButtonTypeCallback('No', 'I hate it');
  sgcTelegram.SendTextMessage('123456', 'Do you like the message?', oReplyMarkup);
Finally
  oReplyMarkup.Free;
End;

procedure OnNewCallbackQuery(Sender: TObject; CallbackQuery: TsgcTelegramCallbackQuery);
begin
  if CallbackQuery.PayLoadData.Data = 'I like it' then
    ShowMessage('yes')
  else
    ShowMessage('no');
end; 

Button Url 

Create a new message like Button Callback and now add a button which will open a new page to answer a poll.

oReplyMarkup := TsgcTelegramReplyMarkupInlineKeyboard.Create;
Try
  oReplyMarkup.AddButtonTypeCallback('Yes', 'I like it');
  oReplyMarkup.AddButtonTypeCallback('No', 'I hate it');
  oReplyMarkup.AddButtonTypeUrl('Poll', 'https://www.yoursite.com/telegram/poll');
  sgcTelegram.SendTextMessage('123456', 'Do you like the message?', oReplyMarkup);
Finally
  oReplyMarkup.Free;
End; 
×
Stay Informed

When you subscribe to the blog, we will send you an e-mail when there are new updates on the site so you wouldn't miss them.

Forward HTTP Requests
Service Accounts Google Cloud PubSub

Related Posts