Как telegram Api в разных чатах устанавливает айди сообщениям? я думал что с 0 или с 1, но судя по моим тестам - нет, не понимаю
Всем доброго времени суток, написал я простенького бота для телеграм на пхп, мини доска обьявлений, и некоторый функционал завязан на айди смс в чатах, для отслеживания этих самых смс создал 3 базы, т.к есть канал куда сообщения отправляет бот, админский чат, и куча личных чатов через которые юзеры и добавляют контент...
Но вот незадача при первом же релизе все посыпалось, потому что по моей логике телеграм в каждом новом приватном чате должен был начинать с 0 или с 1 вести айди смс, но как я понял он каждый раз продолжает нумерацию, прав ли я, и как быть в таком случае с группами, и каналами, там тоже продолжается нумерация или нет, или может я не прав?
Ответы (2 шт):
Всё правильно. Храните в БД ID чата, который должен быть уникальным, и ID сообщения, который может повторяться. Когда Вам нужно сообщение, запрашивайте сообщение с этим ID, которое принадлежит к конкретному чату.
Спустя пару дней ожидания точного ответа, я решил все проверять собственными силами, и к чему я пришел.
У телеграмма есть 3 варианта диалога
- приватный это все личные чаты с пользователями
- Групповой, это все сообщения которые идут в группе
- Канальный, для каналов.
В чем же сама соль? Сколько бы ни было личных диалогов, вся нумерация айди в них строится последовательно, т.е пример: Диалог 1 имеет 5 сообщений , где айди например 3,4,5,6,7 и вот боту пишут в диалог 2, тоже 5 сообщений, и айди смс 2го диалога станет 8,9,10,11,12 если же дальше будут сообщения в 1м диалоге, то счет продолжится с 12.
Для каналов и групп я не проверял вариант, но думаю считается +- так же