package telegram import ( "context" "encoding/json" "net/url" "strconv" "github.com/pkg/errors" ) // EditMessage make an editMessageText api request. func (b *Bot) EditMessage(ctx context.Context, chatID, messageID int64, text string, inlineKeyboards [][]InlineKeyboardButton) (*Message, error) { formData := url.Values{ "message_id": {strconv.FormatInt(messageID, 10)}, "chat_id": {strconv.FormatInt(chatID, 10)}, "text": {text}, } if len(inlineKeyboards) > 0 { var markup struct { InlineKeyboard [][]InlineKeyboardButton `json:"inline_keyboard"` } markup.InlineKeyboard = inlineKeyboards data, err := json.Marshal(markup) if err != nil { return nil, errors.Wrap(err, "fail to encode inlineKeyboard") } formData.Set("reply_markup", string(data)) } var result Message err := b.postForm(ctx, "/editMessageText", formData, &result) if err != nil { return nil, err } return &result, nil }