Найти в Дзене
Android, ИТ и около

Как прочитать удаленные сообщения в Telegram или не дать удалить их вовсе?

Привет, хотел поделиться своим опытом доработки Telegram. В сети часто встречаются ролики о том как прочитать удаленные сообщения в Telegram, WhatsApp и других мессенджерах. Не могу сказать, что люблю такие "дополнительные" опции, оно же - сообщение твой собеседник хотел удалить, а тут такое. Но в определенных ситуациях - сообщение может оказаться очень важным. Не стану придумывать, какие бывают ситуации, а расскажу про техническую часть опыта. Как правило используется способность android сохранять уведомлен от приложений в журнал. Для этого в настройках нужно выбрать соответствующую опцию. И этот способ хорош своей универсальностью, но плох сложностью доступа к сообщениям. Я же расскажу про "программерский" способ решения вопроса на примере telegram, так - как исходник есть в свободном доступе. С него и начнем. Клонируем себе на компьютер исходник Telegram git clone https://github.com/DrKLO/Telegram.git Открываем проект в Android Studio. Внимательно читаем README.md. Там подробн

Привет, хотел поделиться своим опытом доработки Telegram. В сети часто встречаются ролики о том как прочитать удаленные сообщения в Telegram, WhatsApp и других мессенджерах. Не могу сказать, что люблю такие "дополнительные" опции, оно же - сообщение твой собеседник хотел удалить, а тут такое. Но в определенных ситуациях - сообщение может оказаться очень важным. Не стану придумывать, какие бывают ситуации, а расскажу про техническую часть опыта.

Как правило используется способность android сохранять уведомлен от приложений в журнал. Для этого в настройках нужно выбрать соответствующую опцию. И этот способ хорош своей универсальностью, но плох сложностью доступа к сообщениям. Я же расскажу про "программерский" способ решения вопроса на примере telegram, так - как исходник есть в свободном доступе. С него и начнем.

Клонируем себе на компьютер исходник Telegram

git clone https://github.com/DrKLO/Telegram.git

Открываем проект в Android Studio. Внимательно читаем README.md. Там подробно описано, что сделать для полноценной работы приложения собранного из исходников с вашими правкам. Остановлюсь только на этой строчке:

Obtain your own api_id (https://core.telegram.org/api/obtaining_api_id) for your application.

Там сказано, что вам нужно получить свой api_id. Без этого id ваше приложение не заработает. Полученные данные записываем в BuildVars.java - файл, который расположился в папке org/telegram/messenger. Собственно и все дальнейшие манипуляции будут проходить в этой директории.

Далее приступим к отключению части кода, который отвечает за удаление полученных сообщений. Переходим в пакет org.telegram.messenger открываем класс MessagesController и уже внутри ищем проверку deletedMessagesFinal и deletedMessages что они не null.

  • if (deletedMessagesFinal != null) {...}
  • if (deletedMessages != null ) {...}

Содержащийся внутри код удаляет сообщения и удаляет оповещения. Его нужно закомментировать. Вполне возможно, этот код отвечает и за другие функции приложения и если вы найдете за какие или для чего он нужен ещё - напишите в комментариях. Возможно, в каких то проявлениях эта модификация будет вызывать ошибку.

В принципе уже можно собрать проект и попробовать приложение в использовании. Но я уверен, если вы проделаете все эти манипуляции вам захочется больше полезных модификаций. Я в свою очередь постараюсь написать ещё статьи про доработки, которые сами напрашиваются. Например, как пометить, что сообщение пытались удалить.

Почти все написанное есть в видео. Подписывайтесь - это стимул развивать канал. Спасибо за интерес!