telegram接入微信


https://blog.1a23.com/2017/01/09/EFB-How-to-Send-and-Receive-Messages-from-WeChat-on-Telegram-zh-CN/


開發代號 EH Forwarder Bot(簡稱 EFB)是一個可擴展的聊天平台隧道框架,基於 Python 3。目前已內置了 Telegram 主端 (Master Channel) 和微信從端 (Slave Channel),用來在 Telegram 收發微信消息。其他從端開發已在計划之中。同時 EFB 也配備了詳盡的文檔,歡迎有興趣的朋友們開發自己的主端或從端,來支持更多的平台。EFB 在 GitHub 中開放了源代碼,並且在 Read The Docs 平台上發布的開發文檔(英文,en-US)。

本文主要介紹了如何在一個虛擬服務器 (VPS) 中安裝並配置 EFB、Telegram 主端和微信從端,以及如何使用 Telegram 主端來收發微信消息。

0x00: 說明
本文檔基於 EFB v1.2 build 20170111 版本制作而成。較新的版本可能會有不同的安裝步驟。敬請注意。
本教程面向具有一定背景知識的進階用戶,如有疑問,請您先在互聯網上搜索(推薦 Google),若仍未解決、歡迎在 EFB Telegram 支持群組留言。
0x01: 用料
在開始之前,請准備:

電腦 一台
推薦 Linux、OS X、macOS 操作系統
部分手機亦可使用,但操作會略微繁瑣。
Telegram 賬號 一枚
Windows 用戶需要 SSH 客戶端 一枚,常用 PuTTY
牆外 VPS 一枚
沒有 VPS 的可以嘗試一下 Vultr 日本,速度還不錯,順帶可以搭梯子。新用戶贈送 $20 鏈接
(才不是要假裝菜譜呢)

0x02: 構建環境
這里我們使用 Ubuntu 16.04 作為例子。CentOS、Arch 等其他發行版除去包管理器指令之外操作基本相同。(因為實在是不想再加錢開一個 VPS,所以下面的指令運行在同等版本的 Docker Image 上)

首先通過 SSH 客戶端連接到你的 VPS。

0x021: 安裝 Python 與非 Python 依賴
輸入以下指令。

注:以下安裝的部分軟件包可能已經預安裝在你的系統中。但請注意將已安裝的 Python 3 版本升級到 3.5 或以上。


sudo apt-get install python3.5 libopus0 ffmpeg libmagic1 python3-pip git nano
(怎么感覺包名這么奇怪呢,算了,大概這樣吧,差也差不了太多。 ¯\_(ツ)_/¯)

0x023: 下載源碼並安裝 Python 依賴
1

git clone https://github.com/blueset/ehForwarderBot.git
cd ehForwarderBot
pip3 install -r requirements.txt
0x03: 配置 EFB
接下來就是進行各種必要的配置和初始化的步驟了。

0x030: 創建 Telegram Bot
Telegram Bot 是 EFB(Telegram 主端)的出口,也是呈獻給用戶的渠道。我們在這里使用了 Telegram 官方的 Bot API,以最大化利用 Telegram Bot 所提供的各種便利功能。

要創建一個新的 Bot,要先向 @BotFather 發起會話。發送指令 /newbot 以啟動向導。期間,你需要指定這個 Bot 的名稱與用戶名(用戶名必須以 bot 結尾)。完畢之后 @BotFather 會提供給你一個密鑰(Token),妥善保存這個密鑰。請注意,為保護您的隱私及信息安全,請不要向任何人提供你的 Bot 用戶名及密鑰,這可能導致聊天信息泄露等各種風險。

接下來還要對剛剛啟用的 Bot 進行進一步的配置:允許 Bot 讀取非指令信息、允許將 Bot 添加進群組、以及提供指令列表。

發送 /setprivacy 到 @BotFather,選擇剛剛創建好的 Bot 用戶名,然后選擇 “Disable”.
發送 /setjoingroups 到 @BotFather,選擇剛剛創建好的 Bot 用戶名,然后選擇 “Enable”.
發送 /setcommands 到 @BotFather,選擇剛剛創建好的 Bot 用戶名,然后發送如下內容:

link - 將會話綁定到 Telegram 群組
chat - 生成會話頭
recog - 回復語音消息以進行識別
extra - 獲取更多功能
然后還需要獲取你自己的 Telegram ID,ID 應顯示為一串數字。獲取你自己的 ID 有很多方式,你可以選擇任意一種。下面介紹兩種可能的方式。

Plus Messenger
如果你使用了 Plus Messenger 作為你的 Telegram 客戶端,你可以直接打開你自己的資料頁,在「自己」下面會顯示你的 ID。
通過 Bot 查詢
很多現存的 Bot 也提供了 ID 查詢服務,直接向其發送特定的指令即可獲得自己的數字 ID。在這里介紹一些接觸過的。
@get_id_bot 發送 /start
@XYMbot 發送 /whois
@mokubot 發送 /whoami
@GroupButler_Bot 發送 /id
@jackbot 發送 /me
@userinfobot 發送任意文字
@orzdigbot 發送 /user
留存你的 Telegram ID 以便后續使用。

0x031: 配置 EFB 和 Telegram 主端
這差不多就是安裝過程的最后一步了。首先創建存儲用文件夾並賦予其權限。回到 VPS 上 ehForwarderBot 目錄。(不出意外的話你應該還在這個目錄)


mkdir storage
chmod 777 storage
然后復制並編輯配置文件。


cp config.sample.py config.py
editor config.py
在配置文件中,token 后引號里面的內容替換為你之前獲得的 Bot 密鑰,admins 后方括號里面填入你自己的 Telegram ID。后面的 6 行是用來配置語音轉文字功能的,不是必要功能,目前可以刪除各行。如果有興趣啟用該功能的,請到各平台申請 API keys。詳情請參見文檔 的「ETM」章節。

注意
配置文件 (config.py) 是一個 Python 文件。Python 文件有着嚴格的格式要求。在編輯該文檔的時候請全程使用英文輸入模式,並避免更改縮進。每一個括號和引號都應該在適當的地方合上。錯誤的格式會導致 EFB 運行失敗。
本文件使用 4 個空格作為一個縮進級別並避免使用 Tab 字符。

編輯好的結果應類似如下內容。token 和 admins 字段有所不同。

# ##############################
# Configs for EH Forwarder Bot
# ##############################
#
# Basic settings
# ----------------
#
# Master/Slave Channels
#
# Master channel:
# The channel that is mainly used to view/manage messages
# from slave channels.
# Currently only 1 master channel is supported.
#
# Slave channels:
# Channels that are hosted on the server and being delivered
# to and from the master channel.
# You may have more than 1 slave channel.
#
master_channel = 'plugins.eh_telegram_master', 'TelegramChannel'
slave_channels = [('plugins.eh_wechat_slave', 'WeChatChannel')]
#
# Plugin specific settings
# --------------------------
# Plugin specific settings should be written below in the format of:
# `channel_name = {"key1": "value1", "key2": "value2"}`
# Please refer to docs of individual plugin for details
#
eh_telegram_master = {
"token": "12345678:QWFPGJLUYarstdheioZXCVBKM",
"admins": [123456789]
}
0x04: 啟動 EFB
到目前為止,EFB 的配置工作已經完成。現在我們只需要啟動它,登陸微信就大功告成了。大多數時候,啟動微信需要掃描屏幕上的二維碼進行授權。這時需要你的 SSH 客戶端字體縮小到適當的大小以完整顯示整個二維碼。

1
python3 daemon.py start
掃描完成之后,手機上會顯示「網頁微信已登錄」,這是因為 EFB 微信從端使用了網頁版微信的接口。當終端顯示:Start auto replying. 時,即代表登陸成功,這時候就可以按下 Ctrl + C 來隱藏輸出了。

0x05: 使用 EFB Telegram 主端
現在,在 Telegram 里面搜索你之前指定的 Bot 用戶名,點擊 Start(開始)即可開始與微信互通消息了。

在最初,所有來自微信的消息都會通過 Bot 直接發送給你,要回復其中的任意一條消息,你需要在 Telegram 中選中那條消息,選擇 Reply(回復),再輸入消息內容。

如果需要向新聯系人發送消息,只需發送 /chat 指令,選擇一個會話。之后這條消息就會變成一個「會話頭」,回復這條消息就可以向指定的聯系人或群組發送消息。

當消息過多時,來自不同會話的消息會使 Telegram 上面的會話混亂不堪。EFB 支持將來自指定會話的消息分流到一個 Telegram 群組中。

在 Telegram 中新建一個空群組,並將你的 Bot 加入到這個群組中。
(如果找不到自己的 Bot,請嘗試在桌面版中創建,並在添加成員時搜索 Bot 的用戶名)
回到 Bot 會話,發送 /link,選擇一個會話,並點擊 “Link”
在彈出的列表中選擇剛剛創建的空群組即可
在綁定會話中,你可以像普通聊天一樣直接發送消息。也可以通過指定回復的形式來 @ 其他人。

注意
雖然 Telegram 群組中的所有人可以看到會話全文,但是只有配置文件 (config.py) 中指定的管理員 (admins) 能夠以你的名義發送消息到微信。EFB 支持設置多個管理員,但只有第一個管理員(按照輸入排序)能夠接收到所有消息,而且這有可能造成不必要的隱私問題,敬請注意。

以上就是 EFB Telegram 主端的基礎用法。關於其他的功能(語音轉文字、微信附加功能等)請參見文檔 的「ETM」章節。

0x06: 常見問題
Q: EFB 微信從端穩定嗎?
只要保持微信手機版網絡連接長期穩定,根據上游項目 ItChat 的統計,可長達數個月不掉線。

Q: EFB 微信從端支持哪些類型的消息?
A: EFB 微信從端理論上支持所有網頁版微信支持的消息類型。即:

微信→Telegram:文字、圖片、視頻、分享鏈接、表情、文檔、位置、語音、名片、好友請求、系統通知
Telegram→微信:文字、圖片、表情(以圖片發送)、視頻
所以說,不支持紅包、支付、朋友圈、轉賬、語音通話、視頻聊天等網頁版不支持的消息類型。

Q: 有些表情收不到
由於微信網頁版的限制,部分受版權保護的表情包不能顯示出來,故亦不能轉發到 Telegram。


詳細安裝過程
pip3 install libmagic python-magic xmltodict pillow
cd /var/lib/docker/overlay2/7a57e662142a6bf0c1074997b91b60db72aea609073893fa9e71c2a6bfbd5655/diff/opt/ehForwarderBot


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM