memos/plugin/telegram/api_edit_message.go
2023-09-17 22:55:13 +08:00

40 lines
943 B
Go

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
}