123456789101112131415161718192021222324252627282930313233343536373839 |
- 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
- }
|