Telegram client android github

Telegram client android github

iMe Messenger — is an unofficial client developed on the Telegram open source and working on Telegram API.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

iMe Messenger is an unofficial Telegram client

The development of the main functionality is made by the Telegram team which creates the most advanced and sophisticated messenger in the world. Telegram provides the opportunity to use its open code and API to implement brand-new solutions. The iMe team develops and adds new features in the messenger without breaking user privacy and violating security principles, enjoying the benefits provided by Telegram.

In-house developments and integrations:

  • iMe Wallet and internal AiCoin
  • Neurobots assistants for chatting
  • Neurobots Store
  • Telegram channels, groups, and chatbots’ collection
  • Animated stickers with the addition of a text
  • Integrated Google Translator
  • Text from a Photo
  • Photo Description
  • Transcribing voice messages to text
  • Fast forwarding messages to WhatsApp, WA Business, and Viber

Features based on the Telegram functionality:

  • Efficient Cloud based on the Saved Messages chat
  • Multi-panel in chats
  • Automatic sorting of chats’ lists by types: Unread; Personal; Groups; Channels; Bots
  • Customized Telegram folders
  • Management. Includes tabs: Owner; Administrator; Undelivered; Drafts
  • Forward messages without quotes
  • Compact view of a chat list
  • Set of iMe app icons

Additional Telegram configurations:

  • Going to the first message in a chat
  • Opportunity to pin chats’ previews to view their content without opening them
  • Hiding a pinned message
  • Display accounts on the home screen for quick switching between them
  • Opportunity to choose what account data to display in the sidebar
  • “Move to archive” option in the chat’s setting of the hamburger menu
  • Disable/enable the lower panel in channels
  • Disable/enable rounding the number of users in chats
  • Confirmation before a call
  • Sending GIFs and stickers without sound
  • Clickable links in profile description
  • User ID in profile
  • Stickers, GIF, voice and video messages preview before sending

Download iMe from the App Store or Google Play!

Creating your Telegram Application

We welcome all developers to use our API and source code to create applications on our platform. There are several things we require from all developers for the moment.

  1. Obtain your own api_id for your application.
  2. Please do not use the name Telegram for your app — or make sure your users understand that it is unofficial.
  3. Kindly do not use our standard logo (white paper plane in a blue circle) as your app’s logo.
  4. Please study our security guidelines and take good care of your users’ data and privacy.
  5. Please remember to publish your code too in order to comply with the licences.

API, Protocol documentation

You will require Android Studio 3.4, Android NDK rev. 20 and Android SDK 8.1

Источник

Telegram client android github

or 1McafEgMvqAVujNLtcJumZHxp2UfaNByqs

Telegram is a messaging app with a focus on speed and security. It’s superfast, simple and free.

This is an unofficial, FOSS-friendly fork of the original Telegram App for Android.

This version of Telegram is available on FDroid:

Читайте также:  Последняя версия адоб флеш плеер для андроид

You can also join #telegram-foss:matrix.org via matrix or #telegram-foss on freenode.

Replacement of non-FOSS, untrustworthy or suspicious binaries or source code:

  • Do location sharing with OpenStreetMap(osmdroid) instead of Google Maps
  • Use Twemoji emoji set instead of Apple’s emoji
  • Google Play Services GCM replaced with Telegram’s push service
  • Has to show a notification on Oreo+, ask Google
  • SECURITY: Old BoringSSL prebuilts are replaced with the newest upstream source code built at compile time
  • SECURITY: Old FFmpeg prebuilts are replaced with the newest upstream source code built at compile time
  • SECURITY: Bundled libWebP is updated

Removal of non-FOSS, untrustworthy or suspicious binaries or source code and their functionality:

  • Google Vision face detection and barcode scanning (Passport)
  • Google Wallet and Android Pay integration
  • Google Voice integration
  • HockeyApp crash reporting and self-updates
  • Google SMS retrieval. You have to type the code manually
  • Allow to set a proxy before login
  • Added the ability to parse locations from intents containing a geo: , , string
  • Force static map previews from Telegram
  • No content restrictions

This repository contains tags to make tracking versions easier.

Versions are in form «v$UPSTREAM$RELEASE» where:

  • $UPSTREAM is the public, visible version of upstream.
  • $RELEASE is a letter ([a-z]) indicating minor releases between official versions (sometimes, upstream is updated without relating the changes to an specific version).

API, Protocol documentation

NOTE: Building on Windows is, unfortunately, not supported. Consider using a Linux VM or dual booting.

Important:

You need the Android NDK, Go(Golang) and Ninja to build the apk.

Don’t forget to include the submodules when you clone:

  • git clone —recursive https://github.com/Telegram-FOSS-Team/Telegram-FOSS.git

Build native FFmpeg and BoringSSL dependencies:

  • Go to the TMessagesProj/jni folder and execute the following (define the paths to your NDK and Ninja):

If you want to publish a modified version of Telegram:

    You should get your own API key here: https://core.telegram.org/api/obtaining_api_id and create a file called API_KEYS in the source root directory. The contents should look like this:

The project can be built with Android Studio or from the command line with gradle:

Источник

Telegram client android github

Fork Client — Unofficial Telegram Messenger for Android


Fork Client is a fork of the official Telegram for Android application.

  • Delete for everyone option enabled by default.
  • Removed pencil floating icon.
  • Original message date for forwarded messages.
  • Smaller header in the sidebar.
  • Option to disable in-app camera.
  • Option to keep unmuted unread chats right after pinned dialogs.
  • See the correct full number of subscribers in groups/channels.
  • Option to go to the first message of a chat.
  • Added more mute duration options (3 hours, 1 day).
  • Quick share button for every media in private chats.
  • Option to start recording video messages with the rear camera.
  • Unlimited unarchived pinned chats (turns their sync off).
  • Option to disable big emojis.
  • Forward messages without quoting the original sender.
  • Added a lot of self-destruct timer’s options in secret chats.
    • Added 2, 3, 4, 5, 10, 15, 20, 30, 40 minutes.
    • Added 2, 3, 5, 8, 12, 16 hours.
    • Added 2, 3, 7 and 32 days.
  • Added Color Picker button in Photo Editor.
  • Tap on cloud GIF with pre-written text will send GIF with this text as caption.
  • Tap on sticker with pre-written text will send both.
  • Added upload date for profile photos.
  • Added ability to see the profile info from the dialogs list via context menu.
  • Added ability to see unread count when you want to mark as read multiple dialogs.
  • Option to directly open the archive on pulldown
  • PiP mode for YouTube’s in-app player
  • Hidden Connecting to proxy. string.
  • Accounts names hidden from the side drawer.
  • Menus to edit username/bio/name moved in the debug menu (two long tap on version section).
  • Option to hide avatar/title of a chat from the dialogs list.
  • Option to not send stickers information in photos.
  • Some features are taken from the Telegram FOSS.
Читайте также:  Как отследить где находится человек по телефону для андроид

You can download binaries from Releases or from my Telegram channel Forkgram.

Источник

Написать Telegram клиент — легко

Чем отличается Telegram от других популярных мессенджеров? Он — открытый!
Другие мессенджеры тоже имеют API, но почему-то именно телеграм известен как наиболее открытый из самых популярных?

Начнем с того, что у Telegram действительно полностью открытый клиентский
код. К сожалению, мы не видим комиты каждый день прямо на GitHub, но у нас есть код под открытой лицензией. Архитектура Telegram подразумевает, что и Bot и API имеет практически такие же методы — https://core.telegram.org/methods.

На самом деле, Telegram представляет не просто чат-мессенджер, а социальную платформу, доступ к которой открыт для разного рода приложений. Они могут предоставлять дополнительные фишки пользователям, взамен используя готовую сеть пользователей и сервера для доставки сообщений. Звучит настолько привлекательно, что нам захотелось попробовать написать своего «клиента» для Телеграм.

Суть приложения

В основном мы занимаемся картами и навигацией, поэтому мы сразу смотрели что-нибудь связанные с геолокацией. Мне очень понравилось, что в Telegram, раньше всех остальных приложений, появился удобный способ делится местоположением в реальном времени (https://telegram.org/blog/live-locations) и я достаточно часто этим пользуюсь: помочь сориентироваться другу, показать дорогу и самое главное ответить на главный вопрос «Когда ты будешь?». В принципе, этого хватает большинству людей, но как всегда есть сценарии, когда простых возможностей не хватает. Например, это может быть группа более 10 человек, с разными устройствами (некоторые устройства возможно не являются телефонами) и разными людьми. Этим людям было бы удобно обмениваться сообщениями в группе, а также видеть перемещения друг друга на карте.

Во главу угла мы поставили задачу создать дополнительную ценность для Telegram, а не пытаться использовать его не по назначению. Мы не хотели, чтобы люди у которых нет специального клиента Телеграм, видели в чате месиво сообщений или что-то невразумительное. У людей с «улучшенным» клиентом, появляются же дополнительные возможности, например:

  1. Более тонкое управление временем при отправке локации в реальном времени в чат.
  2. Просмотр местоположения контактов на карте.
  3. Подключение к чату маячковых устройств, через внешний API (Bot).

Как мы это делали

К счастью, весь код, который мы пишем — Open-Source, поэтому я сразу могу дать ссылку на его реализацию — Реализация Bot и Реализация Telegram Client на Kotlin.

Bot — основы

По реализации Bot существует достаточно много документации и примеров, но все же хочется пройтись и рассказать про некоторые подводные камни. Для начала, мы писали серверную часть
на Java и выбрали библиотеку org.telegram:telegrambots. Так как наш сервер — это обычный SpringBoot, то инициализация крайне простая:

Читайте также:  Как с компа управлять андроидом через

Основная особенность передачи location, что его надо часто обновлять, и боту необходимо редактировать уже отправленные сообщения. Если бы не было такой возможности, то Bot бы просто заспамил чат и это, конечно, был бы Epic Fail. Слава богу, Telegram предоставляет права боту редактировать сообщения на протяжении 24 часов (минимум, возможно и дольше).

Передать сообщение можно многими способами. Есть тип Plain Text, Venue, Location, Game, Contact, Invoice и т.д. Казалось, что для нашей задачи отлично подходит Location, но вскрылась неприятная особенность. Location можно передать только с одного устройства для одного аккаунта или бота одновременно! Представьте у вас 2 телефона и с двух телефонов вы отправили свой Location в один чат. Так вот, на сервере случится ошибка и первый Location Sharing просто остановится. Казалось бы, это явно неральный случай, но представьте, у вас много китайских маячков, которые умеют отправлять Location по заданному URL, но они не умеют отправлять прямо в Telegram. Вы пишите Bot, который забирает с сервера и пушит в телеграм. Вот тут и вылазит, то что Bot не сможет отправить больше одного сообщения маячка с типом Location. Получается, это отлично подходит для единоразовой отправки, но не подходит для Live Location.

Решение простое — отправлять текстовые сообщения, а клиент будет парсить текст и показывать локации на карте. К сожалению в стандартном клиенте Telegram будут видны только текстовые сообщения, но там можно вставить ссылку, чтобы открыть карту.

Bot — Подводные камни

К сожалению, Bot пришлось переписывать аж 2.5 раза. Основная проблема — неправильный дизайн коммуникации.

  1. Почему-то вначале казалось хорошей идеей, если бот будет полноценным участником чата и отправлять сообщения. Но, это плохо и с точки зрения Privacy переписки и с точки зрения взаимодействия с ботом. Правильное решение, использовать Inline bots. Таким образом, гарантируется, что бот не видит ничего кроме своего Location и его можно использовать в любом чате. По-человечески говоря, некультурно тащить своего бота в какой-то общий чат, а нужно пообщаться с ботом один на один и настроить его, а дальше он сможет отправлять нужные сообщения в любой выбранный чат.
  2. В Telegram Message API есть исторически 2 типа взаимодействия: кнопки под текстом ( (inline buttons)[https://core.telegram.org/bots/2-0-intro#switch-to-inline-buttons] ) и ответы боту напрямую текстом. В общем, ответы с ботом безнадежно устарели. Кнопки немного сложнее с точки зрения реализации, но это полностью окупается удобством использования и именно их надо использовать для всего нетекстового ввода.
  3. В качестве примера бота можно посмотреть популярный @vote_bot или наш @osmand_bot.

Telegram Client

Найти примеры готовых telegram client, кроме основного, нам не удалось, но достаточно простая структура tdlib помогла нам создать базовый клиент буквально за пару дней.

Практически все внутренности Телеграмма написаны на С++ и с точки зрения Android виден только класс API на 1.5 Мб прокси методов TdApi.java. Путем сопоставления документации ботов и названия методов, можно достаточно просто сориентироваться куда двигаться.

Telegram Client — подводные камни

Что получилось

Наверное, зная все подводные камни можно было бы все сделать в разы быстрее, но получилось где-то 1-2 месяца на трех человек. Финальное приложение можно найти в Google Play.

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

Источник

Оцените статью