搞事 | 5分鐘部署一個機器人幫你告別 「資訊焦慮」
- 2019 年 11 月 12 日
- 筆記
上次搞事用伺服器搭建了一套監控系統,包含 Bug 追蹤、數據監控以及可視化儀錶盤等功能。
感興趣的可以點擊下面藍字學習一波~
這次搞事是想部署一個 Telegram Bot ,方便訂閱一些不錯的網站和技術部落格。
前奏
如果想跟著我做,你需要準備下面這些東西。
•類似 SSH shell / Xshell 的 ssh 工具•一台能夠自由上網的手機•一台雲伺服器
申請 Telegram Bot
Telegram Bot 有個不錯的地方是可以直接在手機上完成配置和訂閱,方便快捷。
現在在 Telegram 上搜索 @BotFather
,之後在根據提示,輸入/star

接下來根據提示創建一個新的機器人 /newbot
,根據提示給你的機器人起一個名字,我這裡用的是 xianyu_tobot
, 起好名字之後會返回一個 HTTP API token 這個需要記錄下來,之後部署需要用到。

到這裡你就擁有了屬於你自己的一個 Telegram Bot 了。
Telegram Bot 的簡單配置
我們可以通過 /mybot
命令管理屬於你的 Telegram Bot
我們需要簡單設置一下 Telegram Bot ,點擊 Edit Bot
– Edit Commands
根據下面的格式輸入指令
rss - 顯示當前訂閱的 RSS 列表,加 raw 參數顯示鏈接sub - 訂閱一個 RSS: /sub http://example.com/feed.xmlunsub - 退訂一個 RSS: /unsub http://example.com/feed.xmlunsubthis - 使用此命令回復想要退訂的 RSS 消息即可退訂, 不支援 Channel# export - 導出為 OPML 特此提醒:這個功能在我們下面主講的項目中支援的不是很好
部署 RssBot
現在網上比較流行的兩種搭建方式分別是參考下面兩個項目的:
一個是基於 Rust 構建的 rssbot
https://github.com/iovxw/rssbot
還有就是基於 Go 語言構建的 flowerss-bot
https://github.com/indes/flowerss-bot
基於方便新手的便利性,個人強烈推薦後者。不僅使用方便,而且支援 Telegram 內預覽。
這時候就需要掏出剛剛買好的華為伺服器,系統環境為 Centos 7。
先使用源碼的方式編譯部署。
使用源碼部署 flowerss-bot
首先需要配置 go 語言安裝環境
wget https://dl.google.com/go/go1.12.6.linux-amd64.tar.gztar -C /usr/local -xzf go1.12.6.linux-amd64.tar.gzecho 'export PATH=$PATH:/usr/local/go/bin' >>/etc/profilesource /etc/profileyum install make gcc git -y
接著拉取項目源碼並編譯
git clone https://github.com/indes/flowerss-botcd flowerss-botmake build# 配置項目參數vim config.yml
config.yml 中填入的內容
# 這個是之前申請的 bot token# 填入的參數是包含 冒號前面的一串數字的bot_token: XXX#多個telegraph_token可採用數組格式:# telegraph_token:# - token_1# - token_2 # 建議訂閱人數多的 bot 一定要申請多一些!不然沒多久就訪問頻繁了# 申請地址# curl https://api.telegra.ph/createAccount?short_name=flowerss&author_name=flowerss&author_url=https://github.com/indes/flowerss-bot# 選填項telegraph_token: xxxxpreview_text: 0socks5: 127.0.0.1:1080 # 機器配置不高的朋友這個配置項可以設置為20update_interval: 10error_threshold: 100mysql: host: 127.0.0.1 port: 3306 user: user password: pwd database: flowersssqlite: path: ./data.db
配置項說明

你以為到這裡就結束了嗎?
Tip
構建項目時會出現下面的提示:
package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc"(https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
這是因為這個程式碼已經轉移到 github 上面了,但是程式碼裡面的包依賴還是沒有修改,還是 google.golang.org 。
所以不能使用 go get 的方式安裝,我們需要使用下面這種方式:
# 按照錯誤提示創建響應的文件夾mkdir -p $GOPATH/src/golang.org/x/# 從 git 上將源碼同步下來git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net# 使用源碼安裝缺失的包go install net
上面這種方式部署繁瑣不少,但是沒關係,項目作者貼心的為我們準備了 Docker 部署的方式,只需 5 秒就可以一鍵部署了。
Docker 一鍵式部署
使用 Docker 一鍵部署的前提是先配置好 Docker 運行環境,沒有玩過的盆友可以跟著鹹魚一步步往下做。
使用下面的命令在伺服器上安裝 Docker
# 在Linux作業系統下,可以使用如下命令快速安裝Dockercurl -fsSL get.docker.com -o get-docker.shsh get-docker.sh # 安裝完成後,使用下面的命令驗證是否安裝成功, 安裝成功輸入下面的命令會輸出一堆版本資訊docker version
安裝好 Docker 後就需要配置 DockerHub 鏡像加速源地址,否則拉取 DockerHub 鏡像的速度會讓你懷疑人生。