Rewrite

Rewrite

努力学习的前端小菜鸡(:з」∠)_
github
telegram

使用Telegram收發微信消息

EH Forwarder Bot 介紹#

EH Forwarder Bot (EFB)是一個可擴展的消息隧道聊天機器人框架,可在多個平台之間傳遞消息,並遠程控制您的帳戶。

總之就是用這個項目把微信的消息轉發到 Telegram,但是只用EFB是不夠的,要達到用 Telegram 收發微信,還需要efb-telegram-master(ETM)以及efb-wechat-slave(EWS)

官方文檔 官方 wiki

使用須知#

  1. 微信號需要能夠登錄微信網頁版,如果無法登錄那麼可以放棄了。
  2. 有用戶報告會有微信網頁版登錄被騰訊封禁的情況,原話如下:

自 2017 年中旬以來,陸續有用戶報告其微信網頁版登錄被騰訊封禁。表現為用任何方式登錄微信網頁版提示「當前登錄環境異常。為了你的帳號安全,暫時不能登錄 Web 微信。你可以通過客戶端或 Windows 微信登錄」或類似的提示。大部分用戶會在封禁後一天到三個月內解封,不同用戶的解封耗時不同。據觀測,僅有約不足一成的用戶在使用過程中被封禁。該封禁不影響其他客戶端的登錄。目前封禁的原因尚不明確。

與此同時,有現象表明 2017 年中旬以來新註冊的微信用戶不能夠使用微信網頁版。在初次使用之前,請先訪問微信網頁版並確認您可以正常使用此功能。若您的帳號不能使用該功能,請嘗試換用其他帳號嘗試。

如果你對網頁版登錄有要求的話,請慎用此信道。詳細的相關信息請參見issue #7

部署教程#

部署服務需要一個完整的 Linux 作為伺服器,下面以 Debian 系發行版為例。

申請 Telegram bot#

  • Telegram@BotFather 發起對話。
  • 發送/newbot創建 bot,期間需要指定 bot 的名稱與用戶名 (用戶名以 bot 結尾)。
  • 創建完成後 @BotFather 會給你提供一串 數字:英文 形式如 123123123:WERGadsgaeDFGAwetfGq 的 HTTP API,將其保存下來留作後續使用。

請注意,為保護您的隱私及信息安全,請不要向任何人提供你的 Bot 用戶名及密鑰,這可能導致聊天信息泄露等各種風險。

完事後需要對 bot 進行進一步配置。

  • 發送 /setprivacy@BotFather,選擇剛剛創建好的 Bot 用戶名,然後選擇 “Disable”。
  • 發送 /setjoingroups@BotFather,選擇剛剛創建好的 Bot 用戶名,然後選擇 “Enable”。
  • 發送 /setcommands@BotFather,選擇剛剛創建好的 Bot 用戶名,然後發送如下內容:
help-顯示命令列表。
chat-生成聊天頭。
rm-從其遠程聊天中刪除一條消息。
link-將遠程聊天鏈接到群組。
unlink_all-取消群組中所有遠程聊天的鏈接。
info-顯示當前電報聊天的信息。
extra-從通道訪問其他功能。
update_info-鏈接的電報組的更新信息。

到這裡 Telegram bot 就創建完了,如果需要給 bot 設置一個頭像,可以使用 /setuserpic 指令。

獲取 Telegram ID#

Telegram 上搜索 @userinfobot 點擊 /start 即可獲得你的 Telegram ID,一串數字(Chat ID)。

開始部署#

首先,你要有一台裝有 debian 系發行版的 vps,或者一台能裝完整Linux系統的,24h不斷電的,有穩定網絡的設備作為伺服器來部署服務

比如樹莓派,或者一台能 root 的吃灰的安卓手機,通過 Linux Deploy 來安裝 linux 發行版,理論上沒有 root 也可以用 Termux 來安裝完整 Linux 環境用來部署服務禁止套娃

另外你的伺服器需要能夠訪問外網,畢竟 Telegram 是需要外網訪問的,如果你的伺服器沒有辦法訪問外網,ETM也可以讓我們指定代理運行,後續會提到。

安裝依賴#

  • 以下所有命令需要在root用戶下執行,或使用sudo進行提權。
# 先更新一下
apt update -y && apt upgrade -y
# 安裝所需依賴和工具
apt install python3 python3-pip python3-setuptools python3-yaml ffmpeg  libcairo2-dev libcairo2 -y

安裝主體#

pip3 install ehforwarderbot efb-telegram-master efb-wechat-slave
pip3 install --upgrade Pillow
# 可選插件,可以把tg的貼紙發送到微信,建議安裝
pip3 install "efb-telegram-master[tgs]"

EFB_配置文件#

創建/etc/ehforwarderbot/profiles/wechat/config.yaml,寫入以下內容:

master_channel: blueset.telegram
slave_channels:
- blueset.wechat
#flags部分為實驗性功能,更多功能請查看文檔:https://github.com/ehForwarderBot/efb-wechat-slave#實驗功能
flags: 
  delete_on_edit: true
  #以撤回並重新發送的方式代替編輯消息

ETM_配置文件#

創建/etc/ehforwarderbot/profiles/wechat/blueset.telegram/config.yaml,寫入以下內容:

token: "" #在""中間 填入你之前找botfather申請的api
admins:
- 1234 #把數字修改為上面獲取的個人 telegram id
#- 1279136259 #如果,想要多個tg帳號都能使用,可在這裡加入第二個id或者多個id,去掉開頭的#
#flags部分為實驗性功能,更多功能請查看文檔:https://github.com/ehForwarderBot/efb-telegram-master#experimental-flags
flags:
  send_image_as_file: true
  #將所有圖像消息作為文件發送,以防止主動報文的圖像壓縮.需要更多的流量,可以關閉,改為false
  animated_stickers: true
  #啟用對動畫貼紙的實驗性支持啟用對動畫貼紙的實驗性支持,該依賴已包含在教程依賴
  default_media_prompt: text
  #圖片/視頻/文件消息沒有標題時的佔位符文本.

注意!如果你的伺服器無法訪問外網,可以為 ETM 專門指定代理!只需要在/etc/ehforwarderbot/profiles/wechat/blueset.telegram/config.yaml文件底部加入以下內容:

request_kwargs:
    # ...
    proxy_url: http://PROXY_HOST:PROXY_PORT/
    # Optional, if you need authentication:
    username: PROXY_USER
    password: PROXY_PASS

上面是 http 代理,如果需要 socks5 代理,需要額外的 python 軟件包:
pip install python-telegram-bot[socks]
然後使用下面的內容:

request_kwargs:
    # ...
    proxy_url: socks5://URL_OF_THE_PROXY_SERVER:PROXY_PORT
    # Optional, if you need authentication:
    urllib3_proxy_kwargs:
        username: PROXY_USER
        password: PROXY_PASS

到這裡,所需的程序和配置文件都準備完畢,剩下的就是進程管理了。

創建 systemd 守護進程#

創建/etc/systemd/system/efb@.service,寫入以下內容:

[Unit]
Description=EFB instance for profile %i
Documentation=https://github.com/blueset/ehForwarderBot
Wants=network-online.target
After=network-online.target

[Service]
PrivateTmp=true
ExecStart=/usr/bin/python3 -m ehforwarderbot -p %i
Environment=EFB_DATA_PATH=/etc/ehforwarderbot LANG=zh_CN.UTF-8
TimeoutStopSec=10
Restart=on-failure

[Install]
WantedBy=multi-user.target

運行#

使用systemctl start efb@wechat啟動服務
使用journalctl -u efb@wechat -e查看輸出,將底部的二維碼鏈接打開並用微信掃碼登錄
使用systemctl enable efb@wechat設為開機自啟

結束#

到此,整個服務就搭建完畢了,在 tg 上收發微信真爽,坐擁 tg 龐大的貼紙包,現在微信鬥圖沒人可以鬥過我(笑

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。