十一月 17, 2018 | 伺服器和Devops

【Mattermos 教學】建立免費RSS訂閱Webhook,訊息數量無上限

透過Mattermost來進行一些好用的RSS訂閱,像是每日新聞、最新科技、最新技術之類的文章都可以通過RSS的訂閱,當有新文章出來的時候,都可以直接送到Mattermost的特定Channel裡面,節省了本來還要開RSS訂閱軟體的時間。

前言

由於近期在針對公司內部的聊天軟體Mattermost來進行一些好用的RSS訂閱。像是每日新聞、最新科技、最新技術之類的文章都可以通過RSS的訂閱,當有新文章出來的時候,都可以直接送到Mattermost的特定Channel裡面,節省了本來還要開RSS訂閱軟體的時間。

而要達到上述的需求,其實有一個很好的軟體,就是Zapier,提供了各式各樣的整合,但由於免費服務一個月只有提供100則訊息,而基本的付費服務,對於我們小公司來說又覺得算是額外的開銷。所以,這篇文章將會介紹如何建立一個免費且訊息無上限的WEB APP。

閱讀對象

由於相較起Zapier的漂亮UI,這篇文章所分享的相對來說需要不少伺服器相關的技術。以下為基本所需要具備的知識。

  • 對於Mattermost熟悉
  • 對於Docker熟悉

若上述的兩個部分並非你所熟悉,可以參考這篇文章團隊內的聊天工具,不可不知Mattermost與這篇文章教你一次學會安裝 Docker 開始玩轉 Container 容器世界

訂閱範例

這篇文章將以【INSIDE-社群媒體、行動網路、行銷、技術、創業】當作範例

  • INSIDE的RSS網址:http://feeds.feedburner.com/inside-blog-taiwan

建立一個內部Webhook

進入Mattermost的後台【整合】的地方。 可以看到下圖,點擊【內送Webhook】。

以下步驟請參考

  • 新增內送 Webhook

  • 建立並且取得Token網址

使用Docker的服務,來建立一個RSS Feed APP

由於有了內送的Webhook之後,再來就是需要訂閱特定RSS的APP,並且能夠在接收到新的文章後,就將文章自動推送到特定的Channel。

這裡使用的是 RSS- and Atom-Feed Integration Service for Mattermost,其提供了很好的Docker-compose的版本,讓我們更好安裝。

這裡只需要在任何一個有Docker的服務伺服器上面,按照以下的步驟進行操作,即可以安裝成功。

建立APP步驟

  1. 下載程式

    $ git clone https://github.com/bitbackofen/Rss-Atom-Feed-Integration-for-Mattermost.git
    
  2. 建立docker-compose.yml檔案與feeds.env檔案 在這個repo當中,已經有提供了對應的設定檔案範本,可以直接複製範本,即可開始操作。

    • 建立 docker-compose.yml 這個檔案主要是用來建立容器,而通過這個設定檔案可以讓我們輕鬆建立對應的APP
    # 進入資料夾
    $ cd Rss-Atom-Feed-Integration-for-Mattermost
    
    # 建立docker-compose.yml
    $ cp docker-compose.yml.sample docker-compose.yml
    
    • 建立 feeds.env 這個檔案主要是告訴APP,要去哪一個地方下載對應的RSS,並且要將訂閱的文章送到哪一個Channel。
    #建立feeds.env
    $ cp feeds.env.sample feeds.env
    
  3. 編輯docker-compose.yml 通過以下的yaml內容,即可以建立一個自動擷取RSS的APP,可以依照註解,更改你想要的模式

    version: '2'
    services:
      mattermost-rss:
    	build: .
    	environment:
    	  MATTERMOST_HOOK_URL: 'https://填寫剛剛建立的webhook-url'
    	  MATTERMOST_CMD_TOKEN: ''
    	  RSS_SILENT_MODE: 'True' # 靜音模式
    	  RSS_SHOW_NAME: 'True' # 顯示名稱
    	  RSS_SHOW_TITLE: 'True' # 顯示RSS標題
    	  RSS_SHOW_DESCR: 'True' # 顯示RSS的描述
    	  RSS_SHOW_URL: 'False' # 不顯示RSS連結
    	  RSS_VERIFY_SSL_CERT: 'False' 
    	  RSS_SKIP_INIT_ARTICLE: 'False'
    	  INTEGRATION_BOT_NAME: 'RSS-Bot' 
    	  INTEGRATION_BOT_IMG: ''
    	  INTEGRATION_LISTENING_ADDR: ''
    	  INTEGRATION_LISTENING_PORT: '8080'
    	  MATTERMOST_CHANNEL: 'rss-businessweek' # 發佈到 RSS商業頻道
    	  PYTHONUNBUFFERED: 1
    	env_file:
    	  - feeds.env
    	volumes:
    	  - ./feeds.env:/code/feeds.env:rw
    
  4. 編輯feeds.env 按照下面的版本即可以告訴APP要去哪一個地方訂閱RSS,並且可以決定在某個頻道發文的時候,其顯示的名稱與大頭照。

    # 範本
    # RSS_FEED_你想要的顯示名字=訂閱的RSS網址;顯示大頭照的網址
    RSS_FEED_INSIDE=http://feeds.feedburner.com/inside-blog-taiwan;https://ibw.bwnet.com.tw/image/blog/bw/1aa6358ac38d8044a22e606a9e42244e.png
    
  5. 啟動APP

    $ docker-compose up -d
    
  6. 建立完畢對應的WebAPP,可以一直訂閱新文章囉

小結論

通過了上述這些好用的方法,就可以一直訂閱各式各樣的RSS囉,而且還可以送到自己想要的頻道,真的是超級方便囉,給有興趣的大家參考,一同來使用吧:)