1234567891011121314151617181920212223242526272829303132333435363738 |
- package telegram
- import (
- "context"
- "encoding/json"
- "fmt"
- "net/url"
- "strconv"
- )
- // EditMessage make an editMessageText api request.
- func (b *Bot) EditMessage(ctx context.Context, chatID, messageID int, text string, inlineKeyboards [][]InlineKeyboardButton) (*Message, error) {
- formData := url.Values{
- "message_id": {strconv.Itoa(messageID)},
- "chat_id": {strconv.Itoa(chatID)},
- "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, fmt.Errorf("fail to encode inlineKeyboard: %s", err)
- }
- 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
- }
|