PlainMote

HTTP API

指令碼攜帶個人存取權杖呼叫 /api/v1;權杖透過裝置授權取得,與 plainmote login 相同。

取得權杖
  1. 申請驗證碼。scope 為 read 或 write;device 是確認時以及「已授權應用程式」中顯示的名稱。

    $ curl -X POST -H 'Content-Type: application/json' \ -d '{"scope": "read", "device": "my-script"}' https://plainmote.link/api/v1/device/code
  2. 在已登入的瀏覽器中開啟 https://plainmote.link/cli/device,輸入回應中的 user_code 並允許。

  3. 每隔 interval 秒用 device_code 輪詢。允許之前傳回 400 authorization_pending,允許後傳回 access_token。

    $ curl -X POST -H 'Content-Type: application/json' \ -d '{"device_code": "…"}' https://plainmote.link/api/v1/device/token
  4. 在 Authorization 請求標頭中攜帶權杖。放在位址或 Cookie 中的權杖不會被接受。

    $ curl -H "Authorization: Bearer $PLAINMOTE_TOKEN" https://plainmote.link/api/v1/resources
端點
請求權限用途
POST /api/v1/device/code無需權杖申請驗證碼
POST /api/v1/device/token無需權杖用驗證碼換取權杖
GET /api/v1/meread目前的帳號與權杖
GET /api/v1/keyringread帳號的金鑰環,用於加密資源
GET /api/v1/resourcesread列出資源,q 依名稱篩選,tag 依標籤篩選
GET /api/v1/resources/{id}read資源詳情
GET /api/v1/resources/{id}/contentread以原始位元組讀取內容
PUT /api/v1/resources/{id}/contentwrite儲存為新版本,If-Match 指明編輯所依據的版本
POST /api/v1/resourceswrite以 multipart 表單的 content 檔案建立資源,tag 欄位為其加上標籤
PATCH /api/v1/resources/{id}/tagswrite新增或移除資源的標籤
GET /api/v1/tagsread列出帳號的所有標籤及其資源數
POST /api/v1/quick-shareswrite建立快速分享並傳回連結
DELETE /api/v1/tokenread撤銷目前的權杖
約定
格式JSON;讀取和儲存內容時為原始位元組。時間為 UTC 的 RFC 3339 格式。
錯誤{"error": "<code>", "message": "…"}
權杖自登入起 90 天有效。唯讀權杖呼叫寫入端點時傳回 403。
頻率限制每個權杖每分鐘 300 次;超出傳回 429 rate_limited。
加密內容以密文傳回,由用戶端用主密碼解密。
不提供刪除資源、管理分享連結、檢視存取記錄。

完整的請求和回應格式見原始碼: docs/api.md