前言
最近有朋友查詢到底怎樣才能自動把影片發佈到 X(Twitter),
剛好自動發佈到 X 上也是我感興趣的題目,
那就好好的研究一下吧。
先說明一下經過我的研究後,
單純上傳文字的貼文只需要利用 n8n 的節點就可以實現,
不過圖片/影片就沒有那麼簡單了,
需要利用外部的 API 才能完成任務。
本次教學除了帶你一步一步申請 X Developers 以外,
我還會自建一個外部的 API,
我們將在 Zeabur(付費平台)上部署這個自建 API。
前置準備事項
這是全平台自動發文的延伸文章,
除了申請 API 以外,
我還會帶你連接全平台自動發文系統,
建議你先看主要文章。
經營自媒體必備的全平台自動發文系統:Notion × n8n × 多平台 API 教學
下載區
申請 X API:詳細步驟教學
一. 建立 Developer 應用程式
- X Developers 官網
- 進入 Developer Portal
- 建立你的第一個 App
二. 設定 Redirect URL
- 在 n8n 中打開
Post Twitter5節點

- Generic Auth Type →
OAuth1 API - OAuth1 API →
Create New Credential - 先把 OAuth Redirect URL 複製下來

- 回到 X Developers →
User authentication settings

- App permissions →
Read and Write - Type of App →
Web App, Automated App or Bot - App info →
把剛剛 OAuth Redirect URL 貼上 - Website URL →
你的網頁
三. 設定 OAuth1 API 參數
- 回到 n8n 的 OAuth1 API 設定
- Authorization URL →
https://api.x.com/oauth/authorize - Access Token URL →
https://api.x.com/oauth/access_token - Consumer Key →
參考下圖

- Consumer Secret →
參考上圖 - Request Token URL →
https://api.x.com/oauth/request_token - Signature Method →
HMAC-SHA1 - Allowed HTTP Request Domains →
All

四. 設定 Custom Auth 參數
- 在 n8n 中打開
Upload Image to X節點

- Generic Auth Type →
Custom Auth - Custom Auth →
Create New Credential - JSON:
{
"headers": {
"X-Consumer-Key": "參考下圖",
"X-Consumer-Secret": "參考下圖",
"X-Access-Token": "參考下圖",
"X-Access-Token-Secret": "參考下圖"}}


五. 更新其他相關節點
- 圖中標記的節點一律用 OAuth1 API

- 圖中標記的節點一律用 Custom Auth

利用 Zeabur(付費平台)部署外部 API
一. 移植 GitHub 專案
- 去 Twitter-Upload-Media-API 專案 →
Create a new fork

二. 把專案安裝到 Zeabur 上
- 去 Zeabur 的 Setting 裡確認已經連接好同一個 Github 帳號。

- 然後我們在 Zeabur 開一個新的 Project,
可以選擇專用伺服器/共享叢集,
這篇文章我們用共享叢集作為示範。 - 至於有什麼差別,如何建立專用伺服器,
可以參考以下文章。
Hetzner 專用伺服器及連接 Zeabur 教學(待撰寫)
- 在後台建立
New Project

- 按 GitHub

- 找到 Twitter-Upload-Media-API 專案並 Deploy

- 等 Zeabur 自動部署後給這個 API 申請一個 Domain →
Generate Domain - 這個 Domain 將會作為 API 的 Endpoint 用

設定圖片 API Endpoint
- 回到 n8n 打開
Upload Image to X節點(總共有兩個)

- 更改當中 https://xxxxx.zeabur.app/upload-twitter-image
- 例如你的 Domain 是 https://x-api.zeabur.app →
https://x-api.zeabur.app/upload-twitter-image

設定影片 API Endpoint
- 打開
Upload Video to X節點(總共有兩個) - 也是一樣更改當中 https://xxxxx.zeabur.app/upload-twitter-video


