用 Line Bot 做一個虛擬貨幣機器人吧!

Roger Wang
4 min readDec 15, 2017

--

前言

最近研究虛擬貨幣( 我知道很慢,請不要罵我 ),因為看到現有的一些 Line Bot 支援的內容都太少了,那我來做個玩玩!

需求

查詢單一貨幣的美金匯率

DEMO

先給大家看成果 XD ,我怕寫得太爛大家會看不到最後

Line Bot QR code

特大本聰(使用 Free trial),無好友上限
大本聰(使用 Developer trial),好友上限50

Github

環境需求

Line Message api

機器人回應的 Line 與 Server 的接口。其中需要:

  1. Line 的開發者帳號,可以藉由現有 Line 使用者直接申請升級,也可以直接申辦一個新的開發者帳號
  2. Webhook — Line 與 Server 的接口就是依靠這個,其中比較特別的需求是 Server domain 需要 SSL 憑證,所以需要 https 協定,不能只是 http ,官方也推荐可以用 Heroku 的伺服器代管服務

Ruby Gem

Nokogiri : Ruby 的爬蟲 Gem

gem 'nokogiri'

line-bot-sdk-ruby : Line bot Ruby sdk

gem 'line-bot-api'

實作

因為 CoinGecko 的幣種順序會依照評分排序,所以我選擇使用 Database 暫存資料再讓 user 依照縮寫存取,讓每次有人存取都會重爬一次,當然也可以加上 whenever 或是直接編輯 crontab 提升回應的速度,只是我很懶 XD,而且發現用量低的話也不見得會比較好

先用 Nokogiri 爬出需要的資料

Nokogiri 的使用細節可以參考
http://ruby.bastardsbook.com/chapters/html-parsing/

Currency.get_currency :將網頁中的貨幣名稱,貨幣縮寫,貨幣價值,市場價值爬出後

Currency.search_by_abbreviation :提供給 Conroller 查詢單一貨幣的方法

再來將 Line 的帳號接口接好

Line Message api 與 Server 最基本的接口只需要3個元素就可以接起來

  1. Channel secret
  2. Channel access token
  3. Webhook url

將這些權仗填入程式中的 API,接到 API 再處理輸入值,至於可以處理哪些種類的內容,在 Line Message api document 中都有詳盡的介紹,就先介紹文字處理的部份:

結語

Line 的操作確實挺簡單的,只有少數的接口也不需要太多的認証才能拿到 Token,作為快速開發的伙伴或是自己想要做點小玩具的話是很不錯的選擇,雖然不是說太強大,但已經俱備了開發某些商業模式與市場的能力,算是台灣相當不錯的平台,現在也有許多購物平台或是其他商業模式正在運行

So, Do it right now !

P.S. 如果喜歡我的內容或是覺得有什麼需要改進的地方,歡迎留言一起討論,也請給予掌聲與追蹤,謝謝,See you next time

--

--

No responses yet