CLI
驗證
透過瀏覽器或個人 API 金鑰登入,並了解當同一台機器上兩者都已設定時,究竟哪一個會優先生效,從而避免弄混和出錯。
CLI 有兩種登入方式:透過瀏覽器,或使用個人 API 金鑰。在自己的電腦上用瀏覽器最簡單;金鑰更適合 CI 和伺服器。
透過瀏覽器登入
auth:login 會在瀏覽器中開啟 Sofia。你核准存取後,CLI 在本機位址(http://127.0.0.1:<port>/callback)接收授權。這是帶 PKCE 的 OAuth2 授權碼流程,不需要複製金鑰。
sofia auth:login--scopes "<s1 s2>":要申請的權限範圍。預設是所有資源權限加上offline_access。--no-browser:只印出網址而不開啟,適用於沒有瀏覽器的機器。
sofia auth:login --scopes "posts:read posts:write offline_access"
sofia auth:login --no-browser憑證的儲存位置
auth:login 之後,CLI 會把工作階段儲存在 ~/.sofia/credentials.json(資料夾權限 0700,檔案權限 0600)。過期的權杖會自動更新,檔案也會跟著重寫。
{
"apiUrl": "https://api.sofia-post.com",
"clientId": "…",
"accessToken": "…",
"refreshToken": "…",
"expiresAt": "…",
"scope": "…"
}檢查與登出
auth:status 顯示 CLI 目前代表的帳號。auth:logout 會刪除憑證檔案。
sofia auth:status
sofia auth:logoutauth:logout 只會刪除這部裝置上的憑證:Sofia API 沒有撤銷端點,因此在你於 Sofia 的 設定 › 已連接的應用程式 中撤銷之前,該存取權仍然有效。
使用個人 API 金鑰
在 Sofia 的 設定 › API › 個人存取 中建立金鑰,然後匯出為 SOFIA_API_KEY。不需要 auth:login,適合 CI 和伺服器。關於金鑰的更多內容見驗證。
export SOFIA_API_KEY="sk_live_…"
sofia establishments:list優先順序
瀏覽器登入取得的憑證優先於 SOFIA_API_KEY。如果要在已登入的機器上使用金鑰,請先執行 sofia auth:logout。
環境變數
| 變數 | 預設值 | 作用 |
|---|---|---|
SOFIA_API_KEY | — | 個人 API 金鑰(設定 › API › 個人存取)。 |
SOFIA_API_URL | https://api.sofia-post.com | 另一個 API 執行個體(預備環境、本機)。 |
SOFIA_CLIENT_ID | 「Sofia CLI」用戶端 | auth:login 使用的另一個公開 OAuth 用戶端。 |
準備好發佈了嗎?前往貼文。
這個頁面對你有幫助嗎?