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

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

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

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

Сертификат загружаю в формате PEM ASCII BASE64.
В браузере сертификат работает нормально.
Единственное, что в нем нестандартного — в subject указано не dns-имя сайта, а его название с пробелами, dns-имя указано в атрибуте "Дополнительное имя субъекта" (altnames).
...
Рейтинг: 0 / 0
09.04.2021, 19:45
    #40061185
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Telegram Bot API
Есть некоторая странность с 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
11.04.2021, 20:53
    #40061496
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Telegram Bot API
Еще такой вопрос - а к боту можно подключиться клиентом (залогинится под ботом)?
Чтобы посмотреть, что бот получает или отправляет.
Сейчас используется логгирование в файл, но это не очень удобно.
...
Рейтинг: 0 / 0
11.04.2021, 22:11
    #40061513
Dadont
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Telegram Bot API
Alibek B.,
под ботом не зарегится, но можно все его сообщения дублировать себе в телеграм
...
Рейтинг: 0 / 0
11.04.2021, 22:24
    #40061517
Dadont
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Telegram Bot API
Код: 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
11.04.2021, 22:27
    #40061521
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Telegram Bot API
Да, о таком способе я не подумал. Тем более, что в API можно клонировать сообщение и затем внести в него корректировки.

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

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


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