Кнопка под сообщением в телеграм

cherus09

Client
Регистрация
10.10.2016
Сообщения
171
Благодарностей
14
Баллы
18
Привет, подскажите как прикрепить кнопку к сообщению через Bot Api Telegram.
Вот такую:

71784
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113
Запрос на
Код:
https://api.telegram.org/bot{-Variable.bot_key-}/sendMessage
Тело запроса:
JSON:
{
    "chat_id": {-Variable.chat_id-},
    "text": "Пример сообщения с кнопкой-ссылкой",
    "parse_mode": "HTML",
    "reply_markup": {
        "inline_keyboard": [
            [
                {
                    "text": "Текст кнопки",
                    "url": "https://google.ru/"
                }
            ]
        ]
    }
}
 
  • Спасибо
Реакции: doc, Nikotim и Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 445
Благодарностей
1 288
Баллы
113
тип данных нужно ставить Другой: application/json
 
Последнее редактирование:
  • Спасибо
Реакции: nicanil

Nikotim

Client
Регистрация
26.02.2017
Сообщения
35
Благодарностей
8
Баллы
8
Запрос на
Код:
https://api.telegram.org/bot{-Variable.bot_key-}/sendMessage
Тело запроса:
JSON:
{
    "chat_id": {-Variable.chat_id-},
    "text": "Пример сообщения с кнопкой-ссылкой",
    "parse_mode": "HTML",
    "reply_markup": {
        "inline_keyboard": [
            [
                {
                    "text": "Текст кнопки",
                    "url": "https://google.ru/"
                }
            ]
        ]
    }
}
Ребята подскажите пожалуйста что бы в этом коде только чисто кнопка отправлялась а не текст тоже. Что бы как новый пост кнопка отдельно не шла. А то у меня получается два пост запроса один в urlencoded а другой в JSON/ Или может это как то в один постзапрос пихнуть можно?

У меня сейчас так

1 Post запрос
C#:
chat_id=ID&parse_mode=HTML&text=
<a href="{-Variable.poster-}"> </a>
<a href="{-Variable.ssilka-}"><b>{-Variable.title-}</b></a>

{-Variable.description-}

{-Variable.genre-}
2 post запрос
C#:
{
    "chat_id": ID,
"text": "{-Variable.title-}",
    "parse_mode": "HTML",
    "reply_markup": {
        "inline_keyboard": [
            [
                {
                    "text": "Смотреть Онлайн",
                    "url": "{-Variable.ssilka-}"
                }
            ]
        ]
    }
}
 

dizney

Client
Регистрация
25.01.2014
Сообщения
51
Благодарностей
52
Баллы
18
Вот пример реализации на C#
C#:
string token = "1650685845:AAGqNhDq8SrJCGAhoSQ7tocAy9Q1kycpWrg";
string chat_id = "228243412456";
string message = "Ваш текст";
string url = "Здесь ваша ссылка";
var knopka = "{\"inline_keyboard\": [[{\"text\": \"Кнопка\", \"url\": \""+url+"\"}]]}";           
string post = "https://api.telegram.org/bot"+token+"/sendMessage?chat_id="+chat_id+"&text="+message+"&parse_mode=Markdown&reply_markup="+knopka;
string PostData = string.Empty;
ZennoPoster.HttpPost(post, PostData, "application/x-www-form-urlencoded", "", "UTF-8",ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);
Результат:
72197
 
  • Спасибо
Реакции: zarufakis и Nikotim

Nikotim

Client
Регистрация
26.02.2017
Сообщения
35
Благодарностей
8
Баллы
8
Вот пример реализации на C#
C#:
string token = "1650685845:AAGqNhDq8SrJCGAhoSQ7tocAy9Q1kycpWrg";
string chat_id = "228243412456";
string message = "Ваш текст";
string url = "Здесь ваша ссылка";
var knopka = "{\"inline_keyboard\": [[{\"text\": \"Кнопка\", \"url\": \""+url+"\"}]]}";          
string post = "https://api.telegram.org/bot"+token+"/sendMessage?chat_id="+chat_id+"&text="+message+"&parse_mode=Markdown&reply_markup="+knopka;
string PostData = string.Empty;
ZennoPoster.HttpPost(post, PostData, "application/x-www-form-urlencoded", "", "UTF-8",ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);
Результат:
Посмотреть вложение 72197
Спасибо но в этом коде нет поддержки html для текста не подскажите как реализовать ?
 

dizney

Client
Регистрация
25.01.2014
Сообщения
51
Благодарностей
52
Баллы
18
  • Спасибо
Реакции: Nikotim

Nikotim

Client
Регистрация
26.02.2017
Сообщения
35
Благодарностей
8
Баллы
8
Последнее редактирование:

dizney

Client
Регистрация
25.01.2014
Сообщения
51
Благодарностей
52
Баллы
18
Добавил теги:
C#:
string token = "1650685845:AAGqNhDq8SrJCGAhoUQ7tocAy9Q1kyppWrg";
string chat_id = "2771518283";
string message = "<b>Жирный текст</b>\r\n<a href=\"http://site.com\"><b>Ссылка</b></a>";
string url = "https://site.com";
var knopka = "{\"inline_keyboard\": [[{\"text\": \"Кнопка\", \"url\": \""+url+"\"}]]}";          
string post = "https://api.telegram.org/bot"+token+"/sendMessage?chat_id="+chat_id+"&text="+message+"&parse_mode=HTML&reply_markup="+knopka;
string PostData = string.Empty;
ZennoPoster.HttpPost(post, PostData, "application/x-www-form-urlencoded", "", "UTF-8",ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);
Вот результат:
72226
 
  • Спасибо
Реакции: backoff, LiMe и Nikotim

Nikotim

Client
Регистрация
26.02.2017
Сообщения
35
Благодарностей
8
Баллы
8
Вот результат:
Посмотреть вложение 72226
[/QUOTE]

Спасибо большое вот только при проставление хэштегов перестает работать шаб. Не знаю как сейчас хештеги втулить
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Обработка текста. Encode/decode
Попробуй.
 
  • Спасибо
Реакции: Nikotim

Nikotim

Client
Регистрация
26.02.2017
Сообщения
35
Благодарностей
8
Баллы
8
  • Спасибо
Реакции: Mikhail B.

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
Добавил теги:
C#:
string token = "1650685845:AAGqNhDq8SrJCGAhoUQ7tocAy9Q1kyppWrg";
string chat_id = "2771518283";
string message = "<b>Жирный текст</b>\r\n<a href=\"http://site.com\"><b>Ссылка</b></a>";
string url = "https://site.com";
var knopka = "{\"inline_keyboard\": [[{\"text\": \"Кнопка\", \"url\": \""+url+"\"}]]}";         
string post = "https://api.telegram.org/bot"+token+"/sendMessage?chat_id="+chat_id+"&text="+message+"&parse_mode=HTML&reply_markup="+knopka;
string PostData = string.Empty;
ZennoPoster.HttpPost(post, PostData, "application/x-www-form-urlencoded", "", "UTF-8",ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);
Вот результат:
Посмотреть вложение 72226
а как сюда картинку прикрутить?
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113

Вложения

  • Спасибо
Реакции: Vinovnik

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
Картинку надо отправлять с помощью sendPhoto. Прикрепил пример.
Спасибо, но это немного не то что я просил.
Вот, может кому пригодится:
C#:
string img = @"путь к картинке";
string strToken = "токен бота";
string strChatId = "id чата";
string proxy = "прокси";
string message = "описание";
string url = "ссылка";
var knopka = "{\"inline_keyboard\": [[{\"text\": \"Перейти на сайт\", \"url\": \""+url+"\"}]]}";
string mode = "&parse_mode=Html";

string data = "--8d769bc78125cd4\n";
data += string.Format("Content-Disposition: form-data; name=\"photo\"; filename=\"{0}\"\n", img);
data += "Content-Type: application/octet-stream\n";
data += img;

string resRequest = ZennoPoster.HttpPost(
"https://api.telegram.org/bot" + strToken + "/sendPhoto?chat_id=" + strChatId+"&caption="+message+"&parse_mode=HTML&reply_markup="+knopka+mode,
data,"multipart/form-data",proxy,"UTF-8",ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,"","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",true,5,
new[] {"Host: api.telegram.org"});
 
  • Спасибо
Реакции: Rimen и nicanil

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
Картинку надо отправлять с помощью sendPhoto. Прикрепил пример.
а как сюда прикрутить кнопку ссылку?

------WebKitFormBoundary{-Variable.boundary-}
Content-Disposition: form-data; name="chat_id"
{-Variable.chat_id-}
------WebKitFormBoundary{-Variable.boundary-}
Content-Disposition: form-data; name="photo"; filename="{-Variable.filename-}"
Content-Type: image/jpeg
{-Variable.image_filepath-}
------WebKitFormBoundary{-Variable.boundary-}
Content-Disposition: form-data; name="caption"
{-Variable.random_text-}
 

GREXA

Client
Регистрация
16.09.2017
Сообщения
276
Благодарностей
103
Баллы
43
Хочу спросить у знающих людей, можно ли сделать вот как на скрине ? приложу ниже.
Чтобы было 3 кнопки:

и когда я нажимаю на 1 кнопку то ответ приходил на это же сообщение c ответом "1"
если на 2 кнопку то так же на это сообщение c ответом "2"
если на 3 кнопку то так же на это сообщение c ответом "3"


photo_2021-11-08_04-26-54.jpg
 

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 804
Баллы
113

twisterrr

Client
Регистрация
25.12.2011
Сообщения
284
Благодарностей
23
Баллы
18
можно ли картинку, пост и прикрепленный архив посылать в одном сообщении?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)