powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по Telegram Bot API
18 сообщений из 18, страница 1 из 1
Вопрос по Telegram Bot API
    #40060404
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужно сделать отправку сообщений и прием/обработку сообщений в Телеграме.
Раньше никогда с ним не сталкивался, поэтому не все понятно.
Как я понял, есть основной API и Bot API.
Первый более сложен в реализации и позволяет сделать клиента.
Второй попроще и предназначен для ботов, которые являются сервисными учетными записями, и к которым можно привязать вебхук.
В принципе меня боты вполне устраивают, но не пойму, как с помощью бота можно написать сообщение пользователю (не в ответ на команду для бота).

У меня есть контакт, заданный либо номером телефона, либо логином (username), которому нужно написать какое-то определенное сообщение.
Мне нужно найти идентификатор чата с этим контактом (или создать чат, если он не был создан) и затем отправить ему определенный текст.
Бот может это сделать? Или нужно делать клиент?
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060406
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
не пойму, как с помощью бота можно написать сообщение пользователю (не в ответ на команду для бота)

Бот не может писать первым, это защита от спама. Сначала пользователь должен написать боту и как-то подписаться на него, затем бот сможет писать.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060413
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печально.
То есть или полноценный клиент, или бот с предварительной подпиской?
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060420
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у этой подписки есть срок действия?
Другими словами, если пользователь написал боту, то далее никаких ограничений по отправке сообщений нет?
Или как в WhatsApp, должно быть входящее сообщение от пользователя не старше суток?
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060512
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Другими словами, если пользователь написал боту, то далее никаких ограничений по отправке сообщений нет?
да
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060741
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А подскажите еще.
У бота есть два основных способа — периодический запрос getUpdates и использование веб-хука.
Мне нужен веб-хук. Но не совсем пойму, как его задавать.
То есть понятно, что через setWebhook, но сколько времени он действует? Вечно, определенный период или пока не выключат вручную (отправив пустой url)? Где задается токен? Или просто вписывается в строке url? И можно ли подключить более одного веб-хука?
И где документация на API? В гугле у меня первой строкой выходит https://tlgrm.ru/docs/bots/api.
А если здесь , то я не вижу ни поиска, ни оглавления. Да и примеры бы не помешали.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060885
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

https://core.telegram.org/bots/api это правильная ссылка, только надо разобраться как там искать, что смотреть, без поллитра не обойтись.
есть команды отключения, пока команда на отключение не прошла от сервера будет работать.
примеров трудно найти с хуками .
методом проб и ошибок.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060888
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
если на java - пиши на почту, попробую помочь
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40060891
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне на PHP. Думаю разберусь, основной принцип понятен.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061075
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему-то Телеграм не хочет принимать мой сертификат, выдает ошибку: SSL error {error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed}

Сертификат загружаю в формате PEM ASCII BASE64.
В браузере сертификат работает нормально.
Единственное, что в нем нестандартного — в subject указано не dns-имя сайта, а его название с пробелами, dns-имя указано в атрибуте "Дополнительное имя субъекта" (altnames).
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061185
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть некоторая странность с MessageEntity .
В документации сказано, что offset и length задаются в UTF-16.
Сделал такую вспомогательную функцию, чтобы формировать сразу нужную структуру:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
	final public function build($part, $type=null, $arg=null, &$text=null, &$entity=null)
	{
		if (!isset($type))
		{
			$text .= $part;
			return;
		}
		switch ($type)
		{
			case "mention":
			case "hashtag":
			case "cashtag":
			case "bot_command":
			case "url":
			case "email":
			case "phone_number":
			case "bold":
			case "italic":
			case "underline":
			case "strikethrough":
			case "code":
			case "pre":
			case "text_link":
			case "text_mention":
				$item = [];
				$item['type'] = $type;
				$item['offset'] = mb_strlen($text, 'UTF-16');
				$item['length'] = mb_strlen($part, 'UTF-16');
				switch ($type)
				{
					case "pre":
						$item['language'] = $arg;
						break;
					case "text_link":
						$item['url'] = $arg;
						break;
					case "text_mention":
						$item['user'] = $arg;
						break;
				}
				if (!isset($entity)) $entity = [];
				$entity[] = $item;
				$text .= $part;
				break;
			default:
				$text .= $part;
				break;
		}
	}


Однако все ссылки "сползают" и находятся не там, где должны быть.
Но если вместо UTF-16 указать UTF-8, то все правильно.
Это документация Телеграма неточная? Или что-то я делаю неправильно?
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061496
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще такой вопрос - а к боту можно подключиться клиентом (залогинится под ботом)?
Чтобы посмотреть, что бот получает или отправляет.
Сейчас используется логгирование в файл, но это не очень удобно.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061513
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,
под ботом не зарегится, но можно все его сообщения дублировать себе в телеграм
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061517
Dadont
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<html>
<body>

<form action="https://api.telegram.org/botТОКЕН/setwebhook" method="post" enctype="multipart/form-data">
    Select Certificate to upload:
    <input type="file" name="certificate" id="fileToUpload">
	URL: <input type="text" name="url"  value="ССЫЛКА КУДА БУДЕТ БОТ СТУЧАТСЯ"><br>
    <input type="submit" value="Upload Certificate" name="submit">
</form>

</body>
</html>



Вот через такую форму закидывать сертификат, можно самоподписанный
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061521
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, о таком способе я не подумал. Тем более, что в API можно клонировать сообщение и затем внести в него корректировки.

А что тогда за web login в настройках бота, задаваемых botfather? Я думал, что это и есть логин под аккаунтом бота, но не разобрался, как его использовать.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40061522
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хотел кодом, а не формой.
Но в сертификатом я разобрался, как его кодировать в form-data. Просто в сертификат нужно было добавить всю цепочку, начиная с корневого, а я пытался загрузить только конечный сертификат.
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40069130
а можно чтобы боту прислали сообщение, а бот его переслал на какой-то URL ?
...
Рейтинг: 0 / 0
Вопрос по Telegram Bot API
    #40069131
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
бабушкин зайчик
а можно чтобы боту прислали сообщение, а бот его переслал на какой-то URL ?

Можно. Для пересылки на урл никаких ограничений нет.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по Telegram Bot API
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]