百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
T

telegram-purple

> 编程语言
开源

向 Pidgin, Adium, Finch 和其他基于 Libpurple 的通讯员添加对Telegram 的支持 .

734 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

向 Pidgin, Adium, Finch 和其他基于 Libpurple 的通讯员添加对Telegram 的支持 .

This project is abandoned! See instead tdlib-purple

telegram-purple is now totally broken, as is every libtgl-based application. Please use tdlib-purple instead.

Note that only the following features are missing:

  • Retrieving history on first login (didn't really work in telegram-purple anyway)
  • Ignoring certain groups (But why use a messenger if you don't want to ever see those messages?)
  • Not sending read receipts https://github.com/ars3niy/tdlib-purple/issues/22

So tdlib-purple is a good replacement in most cases; feel free to ask politely if a feature is missing. For more details, see https://github.com/BenWiederhake/tdlib-purple/#new-libpurple-plugin-for-telegram

Note that BenWiederhake's repo is actually just a fork of this original repo: For more details, see https://github.com/ars3niy/tdlib-purple/milestone/1

telegram-purple is abandoned since 2021. Maybe it works, maybe it doesn't.

Telegram-Purple Unofficial (Beta)

Telegram-purple is a Libpurple protocol plugin that adds support for the Telegram messenger.

I keep getting many questions about this plugin in my E-mail, so I've created a telegram group chat for telegram-purple related discussions or questions.

Installation

If you are just interested in using the plugin you probably want to use one of the following binary distributions. Please note that I do not control most of those package sources and the version may lag behind.

If your platform is not supported or you want to contribute by testing or development, scroll down to "Building form Source".

macOS (Adium)

  1. Download and execute the [Telegram-Adium bundle] (https://github.com/majn/telegram-purple/releases/download/v1.3.0/telegram-adium-1.3.0.AdiumLibpurplePlugin.zip)
  2. Restart Adium

Windows

We provide an installer for Windows users:

  1. Download and execute the corresponding setup from https://github.com/majn/telegram-purple/releases
  2. Restart Pidgin
  3. If not detected, restart Pidgin again

This installer is built in a different way than previous builds (specifically, by Eion Robb http://eion.robbmob.com/telegram/), and may still have some issues.

Specifically, the installer is compressed, so if you have an overzealous anti-virus installed, the installer may get flagged.

The build is 32-bit, so connecting with Telegram for the first time may take a few minutes.

Alternatively, see "Building the Windows Installer" below.

Fedora (22, 23)

The package is available in the Fedora 22 and 23 testing repositories:

 dnf config-manager --set-enabled updates-testing
 dnf install purple-telegram

Arch Linux (AUR)

https://aur.archlinux.org/packages/telegram-purple/

Debian

You can build it from source (see following section) or build a .deb file for your package manager.

Building From Source

Below, you will find the instructions for how to build the libpurple protocol plugin from source.

1. Clone

This repository has submodules, so you need to clone recursively.

    git clone --recursive https://github.com/majn/telegram-purple
    cd telegram-purple

1b. Cloning if you're a packager

If you are unsure about whether you need this, then you are not a packager and don't have any use for this.

If you need an "orig-tarball", it can be generated by make dist. Note that this automatically generates an appropriate version number like 1.2.4-58-g8e3cebf. You can truncate the git suffix (-g8e3cebf). If the -58 part exists, it means that you're using a development version, which is probably not what you want. If you still want to package this, please leave the commit number (i.e., 58) intact, as this indicates that this version is in fact much further than just 1.2.4.

2. Fetch all dependencies

Fedora
    sudo dnf install gcc gettext libgcrypt-devel libwebp-devel libpurple-devel zlib-devel
Debian / Ubuntu
    sudo apt-get install libgcrypt20-dev libpurple-dev libwebp-dev gettext build-essential libpng-dev
OpenSUSE
    sudo zypper install gcc glib glib-devel libpurple libpurple-devel zlib-devel libwebp-devel

And the development files for gcrypt, probably gcrypt-devel or something. (FIXME)

3. Compile and install

If libwebp is not available, you can disable sticker support by calling ./configure --disable-libweb instead. Please note that this is usually not necessary.

    ./configure
    make
    sudo make install

Pulling Updates

This repository contains submodules, and a simple pull just won't be enough to update all the submodules’ files. Pull new changes with:

    git pull
    git submodule sync # just in case the configuration has changed 
    git submodule update --recursive

Usage

First Login

The username is your current phone number, including your full country prefix. For Germany, this would be '+49', resulting in a user name like '+49151123456'. Telegram will verify your phone number by sending you a code via SMS. You will be prompted for this code, once that happens.

Buddy List

Like in the official Telegram apps, the displayed buddy list consists of all active conversations.

Foreign Users

Foreign users, like for example people you only know through a group chat but never had any conversation with, will not be part of your buddy list by default. You can add those users to the buddy list by clicking on "Add contact..." in the users context menu.

Using secret chats

You can use Telegram secret chats with this plugin, they will show up as a new buddy with a '!' in front of the buddy name.

One caveat of secret chats in Telegram is that they can only have one endpoint, this is a limitation of the protocol. This means that if you create a secret chat in Pidgin or Adium you will not be able to use that chat on your phone. You will be asked whether to accept each secret chat, so you can always choose to accept the chat on a different device if you want. You can set a default behavior for dealing with secret chats (Accept or Decline) in the account settings, if you don't want that prompt to appear every time.

Self destructive messages will be ignored, since I don't know any way to delete them from the conversation and the history.

Confirming the key authenticity

Click on the buddy in the buddy list and click on "Show Info" to visualize the key fingerprint.

Initiate secret chats

To initiate a secret chat from Pidgin or Adium, click on a Buddy in the Buddy List and hit "Start Secret Chat"

Deleting secret chats

If you delete a secret chat from the buddy list, it will be terminated and no longer be usable.

Unicode Emojis for Pidgin

The Telegram phone applications for iOS and Android make use of standardized Unicode smileys (called Emojis). Pidgin does not display those smileys natively, but you can install a custom smiley theme like (https://github.com/stv0g/unicode-emoji) or (https://github.com/VxJasonxV/emoji-for-pidgin) and activate it under Settings > Themes > Smiley Theme.

Code-Tags

Since 1.3.0 it is possible to write messages in monospaced fonts using the markdown backtick syntax.

Example
``` if (true) {
    // do smth 
}```
Result
if (true) {
    // do smth
}

Compiling on macOS

On macOS you probably want to use the prebuilt Bundle for Adium (see above) and not compile it from source. Compiling the bundle for Adium oder Pidgin on macOS is rather complicated and usually not required.

Building the Pidgin Plugin

These steps are necessary when you want to build telegram-purple as a libpurple Plugin for macOS. The outputs of this build are also necessary when building the Adium bundle.

  1. Install Homebrew

  2. Clone repository

     git clone --recursive https://github.com/majn/telegram-purple
     cd telegram-purple
    
  3. Install dependencies using homebrew

    brew install glib
    brew install pkg-config
    brew install pidgin
    brew install webp
    brew install libgcrypt libgpg-error
    
  4. Configure make install

    ./configure CFLAGS="-I/usr/local/include -ggdb -O0" LDFLAGS="-L/usr/local/lib" --disable-translation
    # I currently don't know of an easy to support translations for Pidgin under macOS (sorry)
    
    make
    sudo make install
    

Building the Adium Plugin

(This part may be a little outdated.)

Compiling with XCode is a little bit problematic, since it requires you to compile Adium first to get the necessary framework files. My advice is to just use the prebuilt bundle, but if you really want to do it, follow these steps:

  1. Get the Adium source, compile it with XCode and copy the build output into telegram-adium/Frameworks/Adium. It should contain at least Adium.framework, AdiumLibpurple.framework and AIUitilies.framework

  2. Open the Adium source code, go to ./Frameworks and copy libglib.framework and libpurple.framework into telegram-adium/Frameworks/Adium

  3. Build the tgl submodule and delete libtgl.so from libs/ (it should only contain libtgl.a)

  4. Install libpng and libwebp with homebrew:

    brew install libpng webp
    
  5. If libpng or libwebp are already installed make sure they're up to date

    brew update
    brew upgrade libpng webp
    
  6. Move libpng and libwebp into the appropriate directory so Xcode can find them. Note that the versions might differ, use the one that is

    mkdir -p ./telegram-adium/Frameworks/Adium
    cp /usr/local/Cellar/libpng/1.6.37/lib/libpng.a ./telegram-adium/Frameworks
    cp /usr/local/Cellar/webp/1.0.3/lib/libwebp.a ./telegram-adium/Frameworks
    
  7. Build libgpg-error and libgcrypt using build_dependencies.sh

    sh ./telegram-adium/build_dependencies.sh
    
  8. Build the XCode-Project and execute the created bundle

Building the Debian Package

If you just need a .deb, simply do:

sudo apt-get install debhelper
fakeroot ./debian/rules binary

And you're done! The telegram-purple_….deb and telegram-purple-dbgsym_….deb files are in the parent directory. To show some info about it, try this:

dpkg --info telegram-purple_*.deb

Please note that installing the debugging symbols (dbgsym) help a lot in troubleshooting, so please do install them, too!

Debian Maintainers

If you're a maintainer (if you're not sure, then you aren't a maintainer), you need to produce a lot more files than that.

Here's how you can generate a .orig.tar.gz:

make dist

The following command requires the original tar to exist, and will build all further files, specifically .debian.tar.xz, .dsc, .deb, and .changes:

dpkg-buildpackage

If this fails with a cryptic error message, first make sure that the ….orig.tar really is in place.

For the upload, you should use pbuilder and similar to build the package in a more minimalistic environment. That covers the official part of the work-flow.

Of course, you can call small parts of the build process directly, in order to avoid overhead like rebuilding. For example, if you only need the .debian.tar.xz and .dsc files, do this:

make dist
false # Move tar to parent directory, by hand
dpkg-source -b .

Note that we no longer actively try to get it into the Debian repository.

Building the Windows Installer

You will need a Debian-ish operating system, and the following packages:

apt-get install build-essentials gcc-mingw-w64-i686 libgcrypt-mingw-w64-dev \
        libgpg-error-mingw-w64-dev libz-mingw-w64-dev \
        gettext libgcrypt20-

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言