Какой стртктуры должен быть ответ от Telegram bot Webhook?

Всем привет, не так давно обнаружил нововведение в Telegram Bot API: вместо того чтобы отсылать отдельный POST запрос к api telegram теперь можно отправить response со статусом 200 на входящий Update.
https://core.telegram.org/bots/faq#how-can-i-make-...
6cffad00cbe72be7f2
Отправляю json формата:
{"method":"sendMessage","chat_id":11111111,"text":"Reply test"}
но сообщение не отсылается.
Проверил локально: ответ от вебхука приходит корректный
64f07487cebf1671968078.png

на всякий случай код на GO:


type Response struct {
	Method string `json:"method"`
	ChatId int    `json:"chat_id"`
	Text   string `json:"text"`
}

func handleUpdate(w http.ResponseWriter, r *http.Request) {
	response := Response{Method: "sendMessage", ChatId: 10101010, Text: "struct"}
	jsonData, err := json.Marshal(response)
	w.Write(jsonData)
        if err != nil {
		log.Fatal(err)
	}
	jsonStr := string(jsonData)
	log.Print(jsonStr)
	w.WriteHeader(http.StatusOK)
	w.Header().Set("Content-Type", "application/json")
	if err != nil {
		log.Fatalf("Error happened in JSON marshal. Err: %s", err)
	}
	return
}



Что делаю не так?
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
vabka
@vabka Куратор тега Веб-разработка
Токсичный шарпист
Content-Type: application/json должен быть, а у тебя он text/plain.
Вероятно, ты заголовки выставляешь уже после того как началась отправка ответа.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы