2017-09-05 08:14:36 +00:00
|
|
|
|
package telegram
|
|
|
|
|
|
2017-09-05 09:20:10 +00:00
|
|
|
|
import json "github.com/pquerna/ffjson/ffjson"
|
2017-09-05 08:14:36 +00:00
|
|
|
|
|
|
|
|
|
type AnswerCallbackQueryParameters struct {
|
2017-09-05 09:20:10 +00:00
|
|
|
|
// Unique identifier for the query to be answered
|
2017-10-06 07:55:54 +00:00
|
|
|
|
CallbackQueryID string `json:"callback_query_id"`
|
2017-09-05 09:20:10 +00:00
|
|
|
|
|
2017-10-06 07:55:54 +00:00
|
|
|
|
// Text of the notification. If not specified, nothing will be shown to the
|
|
|
|
|
// user, 0-200 characters
|
|
|
|
|
Text string `json:"text,omitempty"`
|
2017-09-05 08:14:36 +00:00
|
|
|
|
|
2017-10-06 07:55:54 +00:00
|
|
|
|
// If true, an alert will be shown by the client instead of a notification at
|
|
|
|
|
// the top of the chat screen. Defaults to false.
|
|
|
|
|
ShowAlert bool `json:"show_alert,omitempty"`
|
2017-09-05 08:14:36 +00:00
|
|
|
|
|
2017-10-06 07:55:54 +00:00
|
|
|
|
// URL that will be opened by the user's client. If you have created a Game
|
|
|
|
|
// and accepted the conditions via @Botfather, specify the URL that opens
|
|
|
|
|
// your game – note that this will only work if the query comes from a
|
|
|
|
|
// callback_game button.
|
2017-09-05 08:14:36 +00:00
|
|
|
|
//
|
2017-10-06 07:55:54 +00:00
|
|
|
|
// Otherwise, you may use links like t.me/your_bot?start=XXXX that open your
|
|
|
|
|
// bot with a parameter.
|
|
|
|
|
URL string `json:"url,omitempty"`
|
|
|
|
|
|
|
|
|
|
// The maximum amount of time in seconds that the result of the callback
|
|
|
|
|
// query may be cached client-side. Telegram apps will support caching
|
|
|
|
|
// starting in version 3.14. Defaults to 0.
|
|
|
|
|
CacheTime int `json:"cache_time,omitempty"`
|
2017-09-05 08:14:36 +00:00
|
|
|
|
}
|
|
|
|
|
|
2017-10-17 11:08:09 +00:00
|
|
|
|
func NewAnswerCallbackQuery(callbackQueryID string) *AnswerCallbackQueryParameters {
|
2018-02-15 23:28:49 +00:00
|
|
|
|
return &AnswerCallbackQueryParameters{CallbackQueryID: callbackQueryID}
|
2017-10-17 11:08:09 +00:00
|
|
|
|
}
|
|
|
|
|
|
2017-10-06 07:55:54 +00:00
|
|
|
|
// AnswerCallbackQuery send answers to callback queries sent from inline
|
|
|
|
|
// keyboards. The answer will be displayed to the user as a notification at the
|
|
|
|
|
// top of the chat screen or as an alert. On success, True is returned.
|
2017-09-05 08:14:36 +00:00
|
|
|
|
//
|
2017-10-06 07:55:54 +00:00
|
|
|
|
// Alternatively, the user can be redirected to the specified Game URL. For this
|
|
|
|
|
// option to work, you must first create a game for your bot via @Botfather and
|
|
|
|
|
// accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX
|
|
|
|
|
// that open your bot with a parameter.
|
2017-09-05 09:20:10 +00:00
|
|
|
|
func (bot *Bot) AnswerCallbackQuery(params *AnswerCallbackQueryParameters) (bool, error) {
|
2018-02-15 12:32:47 +00:00
|
|
|
|
dst, err := json.Marshal(params)
|
2017-09-05 09:20:10 +00:00
|
|
|
|
if err != nil {
|
|
|
|
|
return false, err
|
|
|
|
|
}
|
|
|
|
|
|
2018-04-12 11:58:05 +00:00
|
|
|
|
resp, err := bot.request(dst, MethodAnswerCallbackQuery)
|
2017-09-05 08:14:36 +00:00
|
|
|
|
if err != nil {
|
|
|
|
|
return false, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var data bool
|
|
|
|
|
err = json.Unmarshal(*resp.Result, &data)
|
|
|
|
|
return data, err
|
|
|
|
|
}
|