← 返回首頁

開發者用 Rust 編寫了一個完整的推特命令行工具「x-cli」,將推特的主要功能整合為單一二進位執行檔

White
White
@holaaWhite
2
𝕏 (Twitter)🔥
AI 中文摘要Claude 生成

開發者用 Rust 編寫了一個完整的推特命令行工具「x-cli」,將推特的主要功能整合為單一二進位執行檔,支援所有核心操作。

功能完整性: 這個工具的核心特色是功能完整性。在讀取操作方面,使用者可以:

  • 瀏覽首頁時間線
  • 查看特定使用者的推文和回覆
  • 檢視粉絲及關注列表
  • 搜尋推文和查看推文詳情

寫操作同樣全面,包括:

  • 發推、回覆、引用轉推
  • 點贊、取消點贊
  • 轉推、取消轉推
  • 關注和取消關注

這意味著該工具並非只是簡單的瀏覽器,而是一個完整的推特客戶端替代方案。

精簡輸出格式: 輸出格式採用精簡 JSON,自動提取關鍵字段並移除 GraphQL 原始包裝,資料量相比原始 API 回應減少約 98%。舉例來說,推文輸出包含推文 ID、URL、文本、建立時間、語言、作者資訊及統計數據(瀏覽次數、點贊、轉推、回覆、引用和收藏),使用者資訊則涵蓋帳號 ID、暱稱、名稱、描述、粉絲數、關注數和推文計數。

多種認證方案: 認證機制提供多種方案,針對不同使用場景:

  • 最簡單的方法是在本地電腦使用瀏覽器登入時直接透過 Chrome 或 Firefox 進行認證
  • 對於 Agent 部署在雲端而本地電腦有瀏覽器登入的情況,工具提供從 DevTools 的 Network 標籤複製完整 Cookie 字符串的方法,再從中提取 auth_token 和 ct0
  • 對於僅有手機且推特登入在移動端的使用者,有三種獲取方式:在手機瀏覽器輸入 JavaScript 命令讀取 cookie、使用 Android Chrome 的 DevTools 遠端調試,或透過網路抓包工具截獲請求頭中的完整 Cookie 值

寫操作限制: 一個重要的實作細節是寫操作必須提供完整 cookie(credentials.json 中的 extra_cookies 字段),否則會報告 226 錯誤,提示「looks like automated behavior」。只提供 auth_token 加 ct0 無法成功執行發推、回覆或引用轉推。相比之下,讀操作不受此限制。這反映出推特對自動化行為的防禦機制相當嚴格。

緊湊模式與進階操作: 工具還支援「緊湊模式」,使用者可加上 -c 標記減少輸出,只保留關鍵字段,適合與大語言模型或管道工具配合使用。命令可與 jq 結合進行進階操作,例如提取推文文本、按點贊數排序推文、根據互動次數篩選結果或提取特定使用者的粉絲數。

技術實現細節: 技術實現採用 rquest(支援 Chrome TLS 指紋)和 reqwest(備用)雙 HTTP 客戶端,自動提取 x-client-transaction-id,API 邏輯參考 heimdall 專案。安裝方式彈性,支援:

  • 一鍵自動安裝腳本(自動偵測系統和架構)
  • 手動下載特定平台的編譯版本
  • 從原始碼使用 Rust 工具鏈編譯

故障排除指引: 故障排除文件指出,認證失敗時執行認證命令,226 錯誤需從瀏覽器 Network 標籤複製完整 Cookie,404 錯誤則可透過刪除交易快取檔案解決。憑證檔案應設定 600 權限確保安全,auth_token 有效期通常數月,修改推特密碼會使所有 token 失效。