為什麼我需要把貼文發布到不同平台
我一直都奉行著 不要把公開貼文當成獨家資訊送給封閉社群平台 的原則,自從我發現要從 Meta 的平台取得資訊是異常地困難之後,我就一直這麼做了。Meta 的平台用 API 或爬蟲基本上都不太容易取得資訊,唯一的方法就是用他們 非常不尊重使用者 的官方網頁或是 App。
這個事件讓我決定以聯邦宇宙當成我的主力社群平台,我不想要我的親友或是追蹤者為了要取得我的資訊而要忍受 那散發著惡臭的 官方 App。但我不可能強迫那些 想當韭菜 不想離開的人們在聯邦宇宙追蹤我,所以我把我的貼文同步到那些主流平台上,一開始是手動把貼文複製到各個平台,後來則是自己用 AI 寫了一個同步發文工具,同時發文到好幾個平台。

這個自己寫的工具我用了好一陣子,用起來沒什麼太大的問題,唯一的問題就是太土砲了,流程跟使用情景也非常地限制:輸入文字之後會產生一張 9:16 的圖,這張圖會當成 IG story 發出去;在 Mastodon 和 Threads 則是文字帶著圖一起發出去。所以如果我想發的文字比較長,字就會滿到畫面外;也無法支援在一則貼文內放 2 張以上的圖片。
這也是我後來比較喜歡在部落格分享的原因——文字、圖片的排版沒有太嚴格的限制,想怎麼擺就怎麼擺。雖然如此,但還是免不了在社群平台發文的需求,所以我最近決定開始慢慢把我的土砲發文工具換掉,而我選擇的是:Postiz。
Postiz 功能簡介
Postiz 的核心功能很簡單:排程並同時發文到所有平台。以文章撰寫當下,Postiz支援以下平台:

除了排程發文以外,Postiz 還有整合社群數據分析、圖片製作、RSS 轉發、API、MCP、Webhook 等等功能。
Postiz 是完全開源的,官方有提供 SaaS 服務,起步價是 $29 鎂 / 月,當然也可以選擇免費自架。自架不用付費也可以使用所有功能,但得自己串接 OpenAI 等等外部 API,如果不需要的話也可以不串接。
另外,目前 Postiz 還正在積極開發中,幾乎每個禮拜都會有新的 release,大家可以期待新功能陸陸續續推出。
Postiz 自架步驟
- 使用 官方文件 提供的
docker-compose.yaml,把 domain 改成自己的(你可能也會想調一下網路 & volume),然後就可以docker compose up -d把服務起起來。
|
|
- 如果使用 reverse proxy 的話,參考文件提供的架構圖,只需要把 container 內部 Caddy listen 的 port 5000 expose 出來即可。

- 進到 Web UI 後,第一次註冊的帳號會是管理員。如果需要使用 Google 登入的話,則需要事先 另外設定。

- 如果成功登入的話,就可以準備來綁各種平台的帳號。但需要先去各個平台拿到 API key,然後回到
docker-compose.yaml設定。
以 Mastodon 為例,跟著 說明文件 做就可以拿到client_id、client_secret,然後就可以填到docker-compose.yaml設定成環境變數然後重新建立 container,如果是 Mastodon 則需要另外設定MASTODON_URL。
註:如果是 Meta 的平台盡量以會拿來綁定的帳號去建立 Meta 的 App,我曾經因為用不同的帳號導致權限問題無法登入。
|
|
- 設定完的話就可以回 Web UI,點左邊的
Add Channel來綁平台的帳號。如果成功的話,會自動 redirect 回來,並且可以在左邊看到綁好的帳號。
失敗的話就得拿著錯誤訊息去 debug 了,比較常遇到的問題可能是 key 打錯、redirect URL 填錯、綁定的帳號沒有被加到 OAuth APP 的測試清單內……等等,這就要慢慢去找出原因了。

Postiz 發文方式說明
綁定成功就可以按左邊的 + Create Post 來寫文章啦!
左上角可以選擇要發布到哪些帳號,上方也可以調整發文時間和頻率。
中間是貼文內容編輯,在下面一點的地方編輯可以在發文的時候一起發出去的回覆(在 Twitter、Threads 等字數有限制的 microblog 發長文的時候可以用)。
最下面可以把貼文存成草稿、設定排程、或是直接發出去。
要特別注意的是:編輯器雖然可以渲染 HTML,但實際上會是以原始碼的方式儲存、然後發布。我就曾經踩過這個坑,發出去之後才看到我的貼文裡面一堆 HTML tag,還要刪掉重發。

點紅框處選擇帳號,然後按下紅色 Edit 的話,可以針對不同的帳號客製內容。右手邊切到 Settings 的話也有針對不同平台的設定,像是 Instagram 就可以選擇是一般的 Post 或是 Story。

排程成功的話就會在日曆上顯示出來,這時候可以點它們來編輯,但如果一次排程好幾個帳號的話會直接被展開,需要一個一個編輯;

發布時間到了 job 會自動執行,把貼文發出去,無論成功或失敗都會在右上角收到通知。

Postiz 的其他功能
Postiz 可以在事件發生的時候觸發 Webhooks,可以拿來串接通知,或是利用這個功能去觸發一些還沒整合進 Postiz 的發文系統。


Postiz 也可以設定用 RSS 來觸發自動發文。

Postiz 可以使用 API 或 MCP 來串接,可以省去手動建立貼文的過程。

其他還有一些像是串接 AI、簽名、貼文模版、團隊帳號管理、社群後台數據查看……等等的功能,不過這些功能我沒有什麼在用就不特別貼出來。Postiz 自己的特點還是由 他們的官網 來呈現是最清楚的。
我使用 Postiz 的方式
我之所以會使用 Postiz 的原因,是因為我自己寫的工具還是有一些限制,但 Postiz 現階段也還是不能直接取代,大部分時候是互相搭配著使用。
舉例來說,如果我需要發 IG Story 的話,我必須要有一張圖片,而且如果這張圖片不是接近 9:16 的比例,我還需要透過各種方式去轉換才能正常在 Story 顯示(這很蠢,我不曉得這樣的設計大家為什麼會喜歡)。
在這種情況下,我就必須要從自己的工具產生好圖片,然後再貼到 Postiz 來。
Postiz 現在其實 已經有類似 plugin 的系統,可以用來串接第三方工具來產生圖片,但似乎還沒有看到相關的開發文件,目前可能得爬 source code 才知道要怎麼加。
也因為 Postiz 有 API 可以打,或許把我自己寫的工具後面處理發文邏輯的部分直接用 Postiz 整個替換掉,也可能是一個不錯的選擇。

另外,目前也還有不少社群平台是 Postiz 還沒有支援的,例如同樣是聯邦宇宙一環的 Misskey、部落格系統 Ghost、或是比較台灣本土化的方格子、噗浪等等。
Postiz 官方針對如何新增平台有 特別寫了一頁文件,但我可能還沒有太多時間去研究怎麼去寫(畢竟資工小廢物也沒有很會寫程式 XD),這些平台可能就要有勞各路大神去貢獻了 m(_ _ )m
