- Telegram Applications
- Исходный код Telegram
- Исходный код
- Официальные приложения
- Неофициальные приложения
- Исходные коды
- Telegram для Android
- Telegram для iOS
- Telegram Web
- TDesktop
- Telegram для OS X
- Telegram CLI
- Telegram для Windows Phone
- Написать Telegram клиент — легко
- Суть приложения
- Как мы это делали
- Что получилось
- Telegram представил исходный код TDLib для создания кастомных мессенджеров и клиент Telegram X для Android
- Как запустить сарафанное радио: четыре механики для B2C-стартапа
Telegram Applications
Our apps are open source and support reproducible builds. This means that anyone can independently verify that our code on GitHub is the exact same code that was used to build the apps you download from App Store or Google Play. Developers are welcome to check out our Guide to Reproducible Builds for iOS and Android.
You can also download the latest version of Telegram for Android from this channel.
- TDLib – a cross-platform client designed to facilitate creating custom apps on the Telegram platform.
- Telegram X for Android – a slick experimental Telegram client based on TDLib.
- Unigram, a client optimized for Windows 10 (based on TDLib) (desktop and Xbox One)
- Telegram CLI for Linux
- MadelineProto
For the moment we are focusing on open sourcing the things that allow developers to quickly build something using our API. We have published the code for our Android, iOS, web and desktop apps (Win, macOS and Linux) as well as the Telegram Database Library.
This code allows security researchers to fully evaluate our end-to-end encryption implementation. It is also possible to independently verify that Telegram apps available on Google Play and App Store are built using the same code that we publish on GitHub.
Cross-platform library for building custom Telegram apps, see TDLib for details.
Licensed under Boost 1.0.
GitHub »
Источник
Исходный код Telegram
Исходный код
На данный момент разработчики фокусируются на открытии источников, которые позволят разработчикам быстро создавать продукты, которые буду использовать наш API. Был опубликован код для Android, iOS, веб-и десктопных приложений (Win, OS X и Linux). Этот код также позволяет исследователям безопасности полностью оценить уровень реализации оконечного шифрования приложений.
Официальные приложения
Telegram для Android
Официальное Android приложение, посмотрите полное описание на Google Play Market.
Распространяется по лицензии GNU GPL v. 2 или выше.
GitHub »
Telegram для iPhone
Распространяется по лицензии GNU GPL v. 2 или выше.
GitHub »
Telegram для macOS
Нативный macOS клиент.
Распространяется по лицензии GNU GPL v. 2.
GitHub »
Telegram для браузеров
Javascript клиент для браузеров. Mac, Windows, Linux.
Распространяется по лицензии GNU GPL v. 3.
GitHub »
Telegram Desktop
Базирующийся на Qt десктопный клиент. Mac, Windows, Linux.
Распространяется по лицензии GNU GPL v. 3.
GitHub »
Telegram для WP
Неофициальные приложения
Telegram CLI (Неофициальный)
Интерфейс командной строки Linux для Telegram.
Распространяется по лицензии GNU GPL v. 2.
GitHub »
Unigram (Неофициальный)
UWP Telegram клиент, который работает на мобильных, компьютерах и Xbox One.
Распространяется по лицензии GNU GPL v. 3 или выше.
GitHub »
MadelineProto (Неофициальный)
PHP MTProto Telegram клиент.
Распространяется по лицензии GNU AGPL v. 3
GitHub »
Источник
Исходные коды
Со временем будет доступно больше исходных кодов. Следите за обновлениями.
Telegram для Android
Официальное приложение для Android.
Telegram для iOS
Официальное приложение для iPhone и iPad.
Telegram Web
Javascript-клиент для Mac, Windows и Linux.
TDesktop
Кроссплатформенное приложение для Windows, OS X и Linux.
Telegram для OS X
Официальное приложение для устройств на Mac OS X.
Telegram CLI
Интерфейс командной строки для Telegram.
Telegram для Windows Phone
Официальное приложение Telegram для Windows Phone.
TDLib (Telegram Database Library) — простое и гибкое средство для разбработки клиента Telegram на Java.
Доступен в качестве библиотеки под Android (в будущем — и под другие платформы) в виде so-файла и интерфейсных Java-классов.
Библиотеки, использовавшиеся в S-версии Telegram для работы с языком TL, MTProto и API Telegram. Лицензия: MIT.
Источник
Написать Telegram клиент — легко
Чем отличается Telegram от других популярных мессенджеров? Он — открытый!
Другие мессенджеры тоже имеют API, но почему-то именно телеграм известен как наиболее открытый из самых популярных?
Начнем с того, что у Telegram действительно полностью открытый клиентский
код. К сожалению, мы не видим комиты каждый день прямо на GitHub, но у нас есть код под открытой лицензией. Архитектура Telegram подразумевает, что и Bot и API имеет практически такие же методы — https://core.telegram.org/methods.
На самом деле, Telegram представляет не просто чат-мессенджер, а социальную платформу, доступ к которой открыт для разного рода приложений. Они могут предоставлять дополнительные фишки пользователям, взамен используя готовую сеть пользователей и сервера для доставки сообщений. Звучит настолько привлекательно, что нам захотелось попробовать написать своего «клиента» для Телеграм.
Суть приложения
В основном мы занимаемся картами и навигацией, поэтому мы сразу смотрели что-нибудь связанные с геолокацией. Мне очень понравилось, что в Telegram, раньше всех остальных приложений, появился удобный способ делится местоположением в реальном времени (https://telegram.org/blog/live-locations) и я достаточно часто этим пользуюсь: помочь сориентироваться другу, показать дорогу и самое главное ответить на главный вопрос «Когда ты будешь?». В принципе, этого хватает большинству людей, но как всегда есть сценарии, когда простых возможностей не хватает. Например, это может быть группа более 10 человек, с разными устройствами (некоторые устройства возможно не являются телефонами) и разными людьми. Этим людям было бы удобно обмениваться сообщениями в группе, а также видеть перемещения друг друга на карте.
Во главу угла мы поставили задачу создать дополнительную ценность для Telegram, а не пытаться использовать его не по назначению. Мы не хотели, чтобы люди у которых нет специального клиента Телеграм, видели в чате месиво сообщений или что-то невразумительное. У людей с «улучшенным» клиентом, появляются же дополнительные возможности, например:
- Более тонкое управление временем при отправке локации в реальном времени в чат.
- Просмотр местоположения контактов на карте.
- Подключение к чату маячковых устройств, через внешний 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 раза. Основная проблема — неправильный дизайн коммуникации.
- Почему-то вначале казалось хорошей идеей, если бот будет полноценным участником чата и отправлять сообщения. Но, это плохо и с точки зрения Privacy переписки и с точки зрения взаимодействия с ботом. Правильное решение, использовать Inline bots. Таким образом, гарантируется, что бот не видит ничего кроме своего Location и его можно использовать в любом чате. По-человечески говоря, некультурно тащить своего бота в какой-то общий чат, а нужно пообщаться с ботом один на один и настроить его, а дальше он сможет отправлять нужные сообщения в любой выбранный чат.
- В Telegram Message API есть исторически 2 типа взаимодействия: кнопки под текстом ( (inline buttons)[https://core.telegram.org/bots/2-0-intro#switch-to-inline-buttons] ) и ответы боту напрямую текстом. В общем, ответы с ботом безнадежно устарели. Кнопки немного сложнее с точки зрения реализации, но это полностью окупается удобством использования и именно их надо использовать для всего нетекстового ввода.
- В качестве примера бота можно посмотреть популярный @vote_bot или наш @osmand_bot.
Telegram Client
Найти примеры готовых telegram client, кроме основного, нам не удалось, но достаточно простая структура tdlib помогла нам создать базовый клиент буквально за пару дней.
Практически все внутренности Телеграмма написаны на С++ и с точки зрения Android виден только класс API на 1.5 Мб прокси методов TdApi.java. Путем сопоставления документации ботов и названия методов, можно достаточно просто сориентироваться куда двигаться.
Telegram Client — подводные камни
Что получилось
Наверное, зная все подводные камни можно было бы все сделать в разы быстрее, но получилось где-то 1-2 месяца на трех человек. Финальное приложение можно найти в Google Play.
Главный вопрос в этой истории, насколько правильно это взаимодействие с точки зрения Телеграма и понравятся ли пользователям такого рода интеграции. В любом случае, сама идея нишевая и отдельных клиентов она уже нашла.
Источник
Telegram представил исходный код TDLib для создания кастомных мессенджеров и клиент Telegram X для Android
Тем временем обе версии Telegram временно исчезли из App Store из-за «недопустимого контента».
Команда Telegram официально представила альтернативный клиент Telegram X для Android — сам мессенджер появился в Google Play ещё неделю назад. Также компания рассказала о библиотеке TDLib (Telegram Database Library), на основе которой собран Telegram X. С её помощью разработчики смогут создавать собственные версии мессенджера с различными функциями.
Разработчики Telegram X сделали акцент на плавной анимации и обновлённом интерфейсе c нативной поддержкой тёмных тем. Также Telegram X разрешает просматривать сообщения без открытия чата. В целом же, разработчики обещают внутри мессенджера много «сюрпризов», которые упростят работу с приложением.
Открытая библиотека TDLib, в свою очередь, позволит создавать новые версии мессенджеров, которые будут работать в экосистеме Telegram. Для разработчиков есть дополнительная документация и открытый код на GitHub.
Инструмент разрешает создавать приложения для любой платформы, включая Android, iOS, Windows, MacOS и Linux. Также TDLib совместима с любым языком программирования, поддерживающими функцию C. Команда Telegram пообещала, что TDLib обеспечит стабильную работу сервиса при медленном интернет-подключении. Ко всем локальным данным, как и к любой другой информации внутри экосистемы Telegram, применяется оконечное шифрование.
Telegram X для iOS появился ещё в конце декабря прошлого года. Однако 1 февраля пользователи Reddit обнаружили, что обе версии мессенджера, включая классический Telegram, пропали из App Store. Приложения недоступны и в России.
Павел Дуров объяснил удаление обоих мессенджеров из App Store тем, что в них содержался «неприемлемый контент». После решения этой «незначительной», по словам Дурова, проблемы приложения снова вернутся в App Store.
Обновлено в 19:31. По словам Павла Дурова, оба приложения вернулись в строй.
Telegram is back in the AppStore after being absent there since midnight CET.
Every day 500,000+ users download Telegram for Android and another
100,000 download Telegram for iOS.
Check out yesterday’s update for both platforms: https://t.co/AVsELnpOGK
Ранее стало известно, что Telegram тестирует функцию, с помощью которой пользователь может группировать каналы в отдельную ленту новостей.
Хотите подсказать новость или поделиться экспертным мнением? Пишите: news@cossa.ru
Как запустить сарафанное радио: четыре механики для B2C-стартапа
Учимся у Dropbox, Tesla, Starbucks и United Airlines.
Источник