IFTTT 收費後的免費替代方案 Make
IFTTT 是「If This Then That」各取首字的縮寫,白話意思是「如果這樣然後那樣」也就是說當某個設定好的條件發生時就接著執行設定好的動作,小蛙原本工作上使用了 IFTTT 裡面提供的 webhook 功能,但後來改成 Pro 收費訂閱才可以使用,於是找到另一套可替代 IFTTT 的工具 Make。
IFTTT 在工作常被我們用來當作一個傳遞訊息的媒介,例如:當某個網路服務發生錯誤時,透過 LINE 通知,隨著 IFTTT 將該功能進行收費後,程式也隨之停擺;加上為了追蹤 YouTube 訂閱數,閒暇時寫了一支在訂閱數發生變化時發送 LINE 通知的工具也隨著休眠,在還沒有購買 IFTTT pro 前,先來介紹這套可以免費透過 webhook 發送 LINE 通知的好用工具-Make。
IFTTT 替代方案 – Make 收費與註冊
免費版本的限制是每個月只能接受 1,000 次請求,以小蛙的狀況 1,000 個綽綽有餘,價位看起來比 IFTTT 還要貴,每個月從 9 元 ~ 29 元不等
(1) 首先連到 make 首頁,點擊右上方 Get started free 進行註冊
(2) 輸入姓名,Email 及密碼,Hosting Region 是指帳號資料放置的位置,可以選擇 EU 歐洲或是 US 美國,Country 選擇 Taiwan 後點擊 Sign up for FREE
(3) Make 會陸續問幾個問題,根據自己的狀況選取,像是你的角色、你使用自動化工具 Make 的目的、你對自動化工具的經驗、你怎麼知道 Make 的、組織規模人數 … 等
(4) 註冊完成後,收到一封電子郵件確認函,點擊 Verify email 進行驗證
建立及設定 Make Scenario
(5) 第一次登入進到首頁後,畫面右上方可以看到 Create a new scenario,建立一個新的腳本
建立 Webhook 模組
(6) 點擊畫面上大大的 + 按鈕,旁邊開啟一個視窗是要使用的工具,在下方搜尋 webhook 後點擊 Webhooks,讓我們的 Make 可以接受來自網址的觸發方式 (trigger)
(7) TRIGGERS 選擇 Custom webhook
(8) 點擊 Create a webhook 開始建立自訂的 webhook
(9) 輸入 Webhook 的名字,如果你怕自己的 webhook 被盜用,可以設定特定 IP,讓 webhook 只接受特定 IP 發送的請求
驗證並抓取 Webhook 參數
(10) 儲存後可以看見一個 webhook 網址,點擊 Copy address to clipboard,將複製出來的網址貼在 Chrome 瀏覽器上,瀏覽器會顯示「Accepted」,回到 Make 畫面會變成 Successfuly determined (下圖右) 就完成 webhook 設定了,這邊可以先將等等要設定的參數以 ? 的方式加在最後面,例如:https://hook.us1.make.com/xj4.,…412.4.sf5?status=hello,藍色部分是 webhook 網址,紅色部分 status 就是小蛙等一下要傳遞的參數。
建立 LINE 模組
(11) 點擊 Add another module 新增一個 LINE 通知模組
(12) 按下新跑出空白模組上大大的 + 後 -> Add another module -> 搜尋並點擊 LINE 模組
(13) 選擇 NOTIFY API 下的 Send a Notification
(14) 接著跳出建立連線視窗,第一次使用 LINE 模組必須要先建立連線,自行輸入 Connection name
(15) 登入 LINE 設定與 LINE 連動,下圖右可選擇要使用哪一種通知視窗,可以傳送一對一通知、特定群組或特定聯絡人
完成連動會收到一封 LINE 通知
設定 LINE 模組發送訊息
(16) 設定 LINE 要發送的訊息,由於上面我們透過 webhook 連結後面加上 ?status=hello,這邊 Message 點下去的時候,會自動抓取 status 這個參數,之後如果要變更參數的話,加入新參數,例如:?status=hello&name=hans (第二個之後的參數要用 & 連接),再執行一次前面 (10) webhook 連結的步驟,這邊就會可以抓到 status 跟 name 兩個參數了
完成設定及測試
(17) 完成後要按儲存才能把這次的 scenario 存下來,將左下方 SCHEDULING 切換成 ON,這個腳本就會開始接收請求囉!
(18) Message 裡面很多變數可以使用,經過小蛙調整,如果訂閱數有變動,會發送 LINE 訊息通知,你也可以根據 Message 內的說明調整發送的訊息
小蛙使用 PHP 來呼叫,如果你有其他可以觸發發送 http request 的工具也同樣可以使用,PHP 程式碼部分如下
$url = 'https://hook.us1.make.com/d................t?status=要傳的參數'; $curl = curl_init($url); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 15); $result = curl_exec($curl); curl_close($curl);
IFTTT 收費後,如果每個月的 webhook 用量小於 1,000 的話,可以考慮這款免費、可以用來替代 IFTTT 的自動化工具 Make 喔!
請問要怎麼連動PTT的文章傳送到LINE
試看看現成的訂閱工具 https://free.com.tw/pttnotifier/
不然就是要寫一支可以偵測文章有沒有增加程式,增加的話再呼叫 webhook 觸發發送通知
PTT 通知小幫手也是要收費的,只能寫程式偵測嗎?那用make感覺就沒有意義啦
不管是 ifttt 或 make 都需要有觸發 (trigger) 的機制
只要 ptt 沒有放出可串接的觸發點 API,也沒有人去開發相關 widget
就沒辦法勾一勾選一選就能用
像這篇文章有提到的 RSS feed
https://www.tpisoftware.com/tpu/articleDetails/2673
因為有一個周期且統一標準的公開訊息發布 RSS feed
就可以透過 ifttt 或 make 提供的 RSS Feed 去串接
即時程度就要看 RSS feed 多久更新一次
IFTTT 部份功能要收費了,但 Make 免費,對會寫程式的人來說,差別很大喔 ~ (當然對大部分的人來說沒什麼影響啦 ~ 🙃)