Как передать ссылку через sendMessage (telegram api)
Пытаюсь передать ссылку через бота в канал
https://api.telegram.org/bot<API-TOKEN>/sendMessage?chat_id=-xxxxxxxxxxx&text=https://www.google.com/search?client=opera&q=Друга Ріка - Впусти мене&sourceid=opera&ie=UTF-8&oe=UTF-8
При передачи сообщения, ссылка приходит, но вот в таком виде:
https://www.google.com/search?client=opera
ссылку формирую так
methods: {
send() {
this.resultLink = "https://www.google.com/search?client=opera&q=" + this.idMessage + "&sourceid=opera&ie=UTF-8&oe=UTF-8"
axios
.get("https://api.telegram.org/bot<API-TOKEN>/sendMessage?chat_id=-xxxxxxxxxxxx&text=" + this.resultLink)
.then(resp => {
this.getInfos = resp.data.result
});
}
Попробовал несколько вариантов на подобии, Html тегов, Markdown (), но нечего не помогло
Через fiddler ссылка выглядит так:
https://api.telegram.org/bot<API-TOKEN>/sendMessage?chat_id=-xxxxxxxxxxxx&text=https://www.google.com/search?client=opera&q=%D0%94%D1%80%D1%83%D0%B3%D0%B0%20%D0%A0%D1%96%D0%BA%D0%B0%20-%20%D0%92%D0%BF%D1%83%D1%81%D1%82%D0%B8%20%D0%BC%D0%B5%D0%BD%D0%B5&sourceid=opera&ie=UTF-8&oe=UTF-8
И если её отдельно скопировать, то она работает.
https://www.google.com/search?client=opera&q=%D0%94%D1%80%D1%83%D0%B3%D0%B0%20%D0%A0%D1%96%D0%BA%D0%B0%20-%20%D0%92%D0%BF%D1%83%D1%81%D1%82%D0%B8%20%D0%BC%D0%B5%D0%BD%D0%B5&sourceid=opera&ie=UTF-8&oe=UTF-8
Ответы (3 шт):
попробуй линк завернуть в
this.resultLink = "<a href=\"https://www.google.com/search?client=opera&q=" + this.idMessage + "&sourceid=opera&ie=UTF-8&oe=UTF-8\""> click </a>
get("https://api.telegram.org/bot<API-TOKEN>/sendMessage?chat_id=-xxxxxxxxxxxx&text=" + this.resultLink + "&parse_mode=\"HTML\"")
и добавить аргумент parse_mode='HTML'
Разобрался, проблема в количестве символов. При передачи ссылки не превышающей ограничение, все отрабатывает нормально. Правда как обойти эту проблему, решения пока не нашёл(
чтоб обойти проблему длинной ссылки можно сократить ее через сервисы различные, например - кликер от яндекса