← 返回文章流

使用 Postiz 來同步貼文到每一個社群平台

為什麼我需要把貼文發布到不同平台 我一直都奉行著 不要把公開貼文當成獨家資訊送給封閉社群平台 的原則,自從我發現要從 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 把服務起起來。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 services: postiz: image: ghcr.io/gitroomhq/postiz-app:latest container_name: postiz restart: always environment: # You must change these. Replace `postiz.your-server.com` with your DNS name - this needs to be exactly the URL you're accessing Postiz on. MAIN_URL: "https://postiz.your-server.com" FRONTEND_URL: "https://postiz.your-server.com" NEXT_PUBLIC_BACKEND_URL: "https://postiz.your-server.com/api" JWT_SECRET: "random string that is unique to every install - just type random characters here!" # These defaults are probably fine, but if you change your user/password, update it in the # postiz-postgres or postiz-redis services below. DATABASE_URL: "postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local" REDIS_URL: "redis://postiz-redis:6379" BACKEND_INTERNAL_URL: "http://localhost:3000" IS_GENERAL: "true" # Required for self-hosting. DISABLE_REGISTRATION: "false" # Only allow single registration, then disable signup # The container images are pre-configured to use /uploads for file storage. # You probably should not change this unless you have a really good reason! STORAGE_PROVIDER: "local" UPLOAD_DIRECTORY: "/uploads" NEXT_PUBLIC_UPLOAD_DIRECTORY: "/uploads" volumes: - postiz-config:/config/ - postiz-uploads:/uploads/ ports: - 5000:5000 networks: - postiz-network depends_on: postiz-postgres: condition: service_healthy postiz-redis: condition: service_healthy postiz-postgres: image: postgres:17-alpine container_name: postiz-postgres restart: always environment: POSTGRES_PASSWORD: postiz-password POSTGRES_USER: postiz-user POSTGRES_DB: postiz-db-local volumes: - postgres-volume:/var/lib/postgresql/data networks: - postiz-network healthcheck: test: pg_isready -U postiz-user -d postiz-db-local interval: 10s timeout: 3s retries: 3 postiz-redis: image: redis:7.2 container_name: postiz-redis restart: always healthcheck: test: redis-cli ping interval: 10s timeout: 3s retries: 3 volumes: - postiz-redis-data:/data networks: - postiz-network volumes: postgres-volume: external: false postiz-redis-data: external: false postiz-config: external: false postiz-uploads: external: false networks: postiz-network: external: false 如果使用 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,我曾經因為用不同的帳號導致權限問題無法登入。 1 2 3 4 5 6 services: postiz: environment: MASTODON_URL: "<mastodon_instance_url>" MASTODON_CLIENT_ID: "<拿到的 client_id>" MASTODON_CLIENT_SECRET: "<拿到的 client_secret>" 設定完的話就可以回 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 現階段也還是

来自 資工小廢物作者主页
在原博客阅读全文 (新标签页打开)

以上内容来自博客订阅源,版权归原作者。关注作者后可以在 关注列表 第一时间查看作者文章。

一起聊聊 0

尊重不同观点

还没有评论。欢迎分享第一个想法。

RSS SUBSCRIPTIONS

选择 RSS 订阅

把博客汇的文章添加到你常用的阅读器。

关注文章 RSS 订阅本订阅需要登录后使用