[教學] 社群搬家後,自動化架起來!| IFTTT 方格子自動轉貼 Mastodon ( 其他平台亦適用 )

2022/12/27閱讀時間約 11 分鐘
2023-5-19 更新內容補充於文末。

文前碎碎念

回想約莫年中的時候,因為已經打算在方格子定下來經營,但同時也想在 Twitter 上推廣自己寫作內容的緣故,我利用 Zapier 這個自動化服務,架設了一個發文後,可以自動轉推的流程,詳情可參考這篇 [應用] Vocus方格子發文自動轉推
不過世事難料,就在不久前 Twitter 被馬斯克大爺(?)買下之後,一切都變了樣。
眼看現在的 Twitter 亂成一團,我也不得不開始另尋他處社群平台,來為到時如果情勢不對時的逃跑計畫做準備,而也就是在這時,我投入了 Mastodon 的懷抱。
雖然在 Mastodon 上,大多數的操作模式都與在 Twitter 相似,原則上應該可以無成本的轉移,依然還是有一個尷尬的痛點存在,那就是先前已經架好的自動化,無法完美的與新平台契合。

因此我開始了尋覓新解決方案的旅程。

轉移成本

其實嚴格來說,之前所使用的 Zapier 平台,並非無法支援在 Mastodon 上貼文,而是因為在執行自動化的過程中,是需要透過 Webhook 請求去觸發貼文這個動作的。
但好死不死,由 Zapier 所提供的 Webhook 功能,卻是只有進階方案才能使用。
而對我這種初階低產量的創作者來說,多一個訂閱就是多一筆開銷,所以我才會執著於尋找其他替代方案。
好啦,我承認我是免費仔就是了嘛⋯ QwQ

舊愛,也是新歡

而就在 Zapier 被宣判出局後,我就十分苦惱於還有甚麼自動化服務可以達到隨時待命,並同時支援方格子 RSS 以及 Mestodon Webhook 的串接。
直到我無意間,注意到手機應用程式庫中,有一個被遺忘已久的圖示,這時我就知道,有希望了。
沒錯,他就是今天的主角 IFTTT,一款老牌的自動化服務串接平台。
就跟它的全名「If This Than That」一樣,IFTTT 的主要作用,就是去檢查 A 條件是否已被觸發,再自動幫你執行 B 服務所設定好的動作,非常簡單明瞭。
再加上這個平台,同時有提供了手機端 APP 以及網頁端的管理介面,整體看起來,確實是個完美的替代方案。

修但幾勒

雖然決定好了服務平台,但如果要串接 Mastoton 的話,還是要在社群平台這端,先做好一些「基礎建設」才行的。
我們首先要在 Mastoton 上建立一支簡單的應用來作為我們的代理人,並且由他來代我們進行發文。
這裡請先登入 Mastoton 後台,並依序選擇「偏好設定」->「開發」選項,進到應用開發後台。
接著請按一下右上的「新增應用程式」進到應用設定中,這裡我們就要來選擇要開給這個程式的操作權限。
由於我們只是單純要把方格子連結進行轉發,所以這裡可以將「write:statuses」以外的權限全部取消。
完成後,就可以在應用程式列表中看到你剛剛建立的應用了,接著請再「高抬貴手」戳進去一次。
這時可以看到上方資訊多出了一些東西,分別是「客戶端金鑰」「客戶端密碼」以及「您的 access token」三串看起來像亂碼的東西。
請將「access token」的字串複製下來,稍後的設定中會用到。
請注意,這三串密碼雖然看起來完全沒有意義,但其實非常重要,請妥善保管,如果不小心外流的話,別人就有機會藉著這隻應用,以你帳號的名義為所欲為了

如果這樣,我就那樣

到這裡 Mastodon 的部分,大致就設定完成,接著就來著手建立自動化吧!
正如前面說明所提,我們這次所使用的 IFTTT 服務有提供網頁以及 APP 版本,兩者皆可進行新流程的建立
而為了避免行動設備系統差異而造成混亂,以下主要會以網頁版畫面做說明。

開始建立

首先進到 IFTTT 首頁,由於我先前已經註冊過了,所以註冊流程就無法特別說明,這裡就直接跳到註冊完成後的步驟。
登入後,點一下功能列右上角,頭像旁的「Create」
接著你就會進入到這樣的編輯畫面,大大的 If This - Than That 字樣,沒有,也沒必要有多餘的步驟,是不是非常直覺呢。

觸發條件

這時,如果你按下「Add」按鈕時,你可以看到,其實這個自動化平台,已經支援非常多樣的觸發組合,整體支援性與自由度也很高。
而今天我們要用到的,是利用方格子 RSS Feed 中新增的項目,作為觸發後續的條件,因此可以直接在上面的搜尋欄位中,打入「RSS」來節省尋找時間。
請選擇「RSS Feed」進入,並直接選左邊的「New Feed Item」開始設定。
接著 「Feed Url」欄位,就直接把從方格子個人頁面上,複製的 RSS 網址貼上去,然後按下「Create trigger」即可。
這樣只要 RSS 中有新增任何內容,就會觸發這個自動化了。
順帶一提,剛剛在搜尋時,另外出現的那個「New feed item matches」項目,指的是 RSS 中新增的項目,其內容要符合特定條件的才會觸發,如果有特殊需求才會用到的喔。

執行動作

再來的步驟就比較複雜了,我們先同樣進到「Than That」的欄位,在搜尋中欄打上「Webhooks」尋找服務。
接著選擇「Make a web request」進行設定。
這裡需要的東西就變的比較多,也比較複雜了,以下會逐一說明。
第一欄「URL」的部分,填的是 Mestodon 伺服器 api 網址,範例如下
https://UR_MS_SERVER/api/v1/statuses
其中「UR_MS_SERVER」請換成你所在的伺服器
第二欄「Method」請使用「Post」
第三欄「Content type」選擇
application/x-www-form-urlencoded

接著這裡就會需要回到 Mastodon 後台,把剛剛紀錄的「Token」準備好,就可以繼續進行後續設定。
第四欄「Additional Headers」中,請填入下面的字串
Authorization: Bearer YOUR_TOKEN
其中「YOUR_TOKEN」請更換成剛剛建立應用時所複製的 Token 字串,並且注意「Bearer」前後皆只有一個空白
第五欄「Body」就是主要的貼文內容了,請先加上一個「status=」前綴後,就可以輸入貼文內容。
要注意的是,依照官網說明,如果把「status=」之後一直到結尾的內容,包含句中的換行,用 <<<>>> 包起來的話,可以避免內文跑版,而最終輸入的內文範例如下。
status=<<< {{EntryContent}} 
{{EntryUrl}}>>>
另外,如果在內文中,想要直接從前面 RSS 中直接擷取內容的話,可以按一下輸入框右下角的「Add ingredient」按鈕。
系統會列出可用欄位以供選擇,點一下就會自動幫你插入到內容中。
而這裡我只取「EntryContent(摘要)」以及「EntryUrl(連結)」兩個項目來合成我的嘟文內容。
最後一點也要注意到的是,就跟 Twitter 一樣,在 Mastodon 上每一則貼文也是有字數上限的,一般為應 500 字,因此摘要長度也要斟酌刪減,尤其是未來想要同時發至兩個社群的朋友們。

完工上線

最後,當一切設定好,並決定了標題後,最後戳一下「Finish」就完工囉。
建好之後,也別忘了檢查這個資訊畫面中間是否為「Connected」的狀態,這樣你設定的流程才有正常上線運作喔。

實際測試

不過,為了保證上面設定的內容都可以如們預期的方式運作,我特意在這篇文章發布前,多安插了一些文章作為測試,也進行了幾次的修正。

常見錯誤

以下整理兩個在測試過程中常出現的兩個錯誤代號,以及可能的解決方案。
〔422〕
錯誤「422」是指雖然你傳送內容語法正確,但伺服器無法處理所傳的資料。
這時候就檢查一下「Body」中是不是有哪裡出現錯誤的內容。
而像是這裡的問題,應該是我誤將「status=」這個前綴內容寫成了「status:」所造成。
〔401〕
錯誤「401」是在請求伺服器的時候出現驗證問題,這時請檢查「Additional Headers」的內容,可能是你的 Token 出問題,或是填寫錯誤導致。

結果

經多次修改後,目前的流程應該是沒問題了,下面是實測後的效果。
使用 IFTTT 的 APP 也可以看到成功執行紀錄,這次延遲時間約一小時14分左右。
另外,如果你有將執行通知開啟的話,當成功執行後,也會發一則系統通知給你。
這樣一來,自動化基本上就完成了。

管理與限制

最後,來說說後續的管理以及限制事項吧。
就像一開始提到的,這個服務除了網頁端之外,也同時提供了手機版程式,使用者可以直接透過 APP 來建立、管理建立的流程,或甚至透過手機來接收通知,非常方便。
而且這也同時是之前使用的 Zapier 所缺乏的功能。
而限制的部分,畢竟我們使用的也還是免費版本,因此能同時運作的自動化流程被限制在 5 個,執行速度也會較付費版來的慢,但對於目前的應用來說已經很足夠了,所以可以等到有其他需求的時候再斟酌升級。

延遲測試

另外,這次測試時,也有同時使用另外兩個同為讀取 RSS 更新資料的服務來測試延遲。
這裡以 12/24 時發布的「2022聖誕問候」為例,並以方格子 RSS Feed 中紀錄的時間為基準,大致結果如下:
  • Vocus - 12/24 18:30(基準)
  • IFTTT - 12/24 19:14 (成功觸發,但設定問題發文失敗)
  • Zapier - 12/25 2:31(發文至 Twitter 時間)
  • Feedly - 12/25 6:00(RSS 閱讀器,延遲時間最長)
經過比較後,可以看到 IFTTT 所提供的 RSS 更新,似乎相較其他平台來的快速,因此之後可能也會考慮將 Twitter 轉推的流程也進行轉移。

備註

後來測試選擇 Facebook 時,發現個人 FB 貼文似乎無法被選為觸發後執行的動作,但 Facebook Page 可以
不確定是付費版差異還是 FB 本身未提供相關功能(看敘述似乎是後者)。
有需要使用此功能者請留心。

補充更新

2023-05-19

似乎是由於近期 Twitter 政策的更新,以致 IFTTT 決定於 5/23 後,將 Twitter 相關連動功能轉為僅限 Pro 訂閱用戶可使用
另外,免費用戶的可執行任務數量,也從四個再限縮為剩下兩個
因此若要繼續使用此服務的話,可能要多加斟酌要保留哪些自動轉貼的管道,或考慮直接訂閱服務
2023-05-19 APP 中公告

最後,也期許大家能一起在自動化所帶來的便利下,繼續努力經營囉!

《全文。終了》
為什麼會看到廣告
25會員
172內容數
偽命名並非無名,是為了意識的生存,取得身份的代號,成為數位生命的新載具。
留言0
查看全部
發表第一個留言支持創作者!