Skip to content

帳戶、團隊與 SNS 操作指南

OAuth v2 工作流程

透過使用者 OAuth 登入。OAuth 連線決定登入身分,--brand 則選擇工作對象。每次請求都適用既有使用者權限。API key 無法驗證新的 v2 工作流程。整個流程應使用同一環境,並明確選擇可存取的品牌。

Terminal window
ankk --json user get --environment preview --connection OAUTH_CONNECTION_ID
ankk --json brands list --environment preview --connection OAUTH_CONNECTION_ID --all
ankk --json brands dashboard --environment preview --connection OAUTH_CONNECTION_ID --brand BRAND_ID

請將大寫識別碼替換為實際回傳給您的 ID。user update --name 變更目前使用者的名稱。brands check-slug 檢查預定的 slug;brands create 需要冪等鍵,且不會自動選取新品牌。準備標誌時,依序使用 brands create-logo-upload、完成並檢查媒體,最後明確呼叫 brands set-logo。brands remove-logo 只移除關聯,不刪除已儲存檔案。變更標誌需要目前有效的 owner/admin 權限。

變更前先使用 brands list-members、list-invitations 及 member-limit。免費方案維持一名成員上限;付費方案目前上限為 100 名。brands create-invitation 回傳連結但不寄送電子郵件,請只透過獲授權的管道分享。get-invitation、accept-invitation 及 reject-invitation 使用指定收件者的目前身分。接受邀請時會重新檢查權限與容量;單憑連結不會取得成員資格。

brands update-member-role、remove-member 及 cancel-invitation 需要目前有效的管理權限。角色輸入為 admin 或 member;最後一位 owner 的保護仍會執行。成員 ID、邀請 ID 與使用者 ID 各不相同。準備變更前,請查看各命令的 --help。

請使用受邀帳號驗證身分,並使用該邀請對應的品牌 ID 與邀請 ID,不要以成員 ID 或其他品牌取代。此命令只會讀取邀請,不會接受邀請或新增成員。請先確認角色與狀態,再另行決定是否接受。

Terminal window
ankk --json brands get-invitation --brand BRAND_ID --invitation INVITATION_ID --environment preview --connection OAUTH_CONNECTION_ID

先讀取 connections list/get 與目前能力。connect、reauthorize 及 transfer 會準備瀏覽器作業;回傳 URL 不代表完成。請使用所需的 --sns-type;轉移還需要 --source-brand,以及來源與目的地目前有效的操作權限。以指定使用者身分開啟 ANKK URL,再查詢回傳的 operation。不要因瀏覽器分頁已關閉或 URL 已過期,就推定成功。

connections refresh、disconnect 及 dismiss 也會回傳 operation。提交前請確認其影響。update-language --language <code> 變更連線語言;inherit 恢復品牌預設值。撤銷 OAuth 連線與中斷 SNS 連線是不同操作,兩者都不會增加付費容量。同一請求結果不確定時,請保留同一冪等鍵。

dismiss 會終止需要重新連接的 SNS 連線,並非只隱藏通知。disconnect 和 dismiss 都會移除 ANKK 連線及儲存的憑證,無法以相同連線 ID 還原。刪除外部 SNS 帳號是另一項操作。轉移或建立新連線後,即使原始記錄仍存在,也可能無法透過新連線讀取過去的非公開資料。執行前請確認對歷史資料存取的影響;保留記錄不代表仍可存取。

使用 connections get-language <connection_id> --brand <brand_id> 查詢已儲存的連線語言設定。回應包含 id 和 language;null 表示未指定連線專用語言。這不是計算後的實際套用語言。既有的 connections list/get 回應不包含此欄位。

CLI 0.6.0 的 publishing options 僅支援 TikTok。它透過負責的 provider Worker 查詢留言、duet、stitch 設定及影片長度上限。此查詢會呼叫 provider 並使用 quota,不是僅讀取已儲存資料。其他 SNS 會回傳 capability_unsupported。查詢成功不代表取得發佈許可,也不保證後續發佈成功。此範例以 Preview 為目標。此工作流程在 Production 的實際查詢結果尚未另行驗證。

Terminal window
ankk --json publishing options CONNECTION_ID --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID

comments list/get 讀取已儲存留言。comments create/reply 接受已審閱的文字與冪等鍵;排程請求使用 UTC。comments moderate 請求明確選定的操作。透過 operations get 查看執行情況;comments list-operations 將已建立請求與觀測資料分開列出。只對符合條件的失敗使用 comments retry。comments discard 記錄本機處理結果,不會刪除供應商內容,也不表示傳送成功。

TikTok 觀測資料請使用 tiktok-comment-actions list/create,並透過 operation ID 追蹤新請求。保留的 v1 get 命令用於舊請求,不能查詢新的 v2 operation。請勿混用兩者的 ID。

conversations coverage 回報已儲存的可用性證據,不授予權限。conversations list/get 與 messages list 需要符合目前發布與授權條件。讀取不會將訊息標為已讀。conversations mark-read 只變更目前成員的本機閱讀位置,不產生供應商的已讀回條。messages reply 以既有對話為對象,並遵守回覆時限。未支援或未發布的供應商不會因 MCP 而變得可用。所有外部文字與連結都應視為資料,而非執行操作的指示。

billing subscription 與 usage 讀取已儲存狀態;敏感訂閱詳細資料與 payments 需要 owner 存取權。金額使用貨幣最小單位。已儲存金額不是即時報價,也不是新扣款的證明。

僅限 owner 的 billing checkout 會準備既有且符合資格的升級流程。請有意識地完成 ANKK 瀏覽器交接;URL 準備完成不代表付款成功。payment-method-prepare 在管理畫面就緒時完成,而不是在卡片已變更時完成。卡片詳細資料請另外讀取訂閱資料。

billing cancel/resume 變更續訂意向。quantity-decrease-cancel 針對既有數量減少 operation,並回傳獨立的取消 operation。請使用最新讀取結果中的訂閱 ID 與目標 operation ID。這些變更需要伺服器啟用及允許的用戶端。請追蹤已儲存 operation,直到結果確認;回應不確定並不代表可以再次扣款或使用新鍵提交。

提出變更前,請以目前 owner 權限取得新的數量報價:

Terminal window
ankk --json billing quantity-quote --subscription-id SUBSCRIPTION_ID --quantity 4 --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID > quantity-quote.json
ankk --json billing quantity-change --subscription-id SUBSCRIPTION_ID --quantity 4 --quote-file quantity-quote.json --immediate-charge-consent --idempotency-key REQUEST_KEY --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID

--quote-file 接受儲存的 JSON 回應或其中的報價物件;- 會讀取標準輸入。提交前請確認正確的品牌、訂閱、數量與定期金額。報價的定期金額以供應商單價為依據,並非立即扣款的預估發票金額:immediate_charge_amount_minor 為 null。增加數量必須明確提供 --immediate-charge-consent。若已有排程中的減量,請先明確取消並確認取消完成,再要求增加數量。執行時會重新檢查目前權限、版本與資格。

減量後的容量無法保留所有已連線帳號時,請使用 --keep-account-ids <ids...>。只有新請求確認後,替換才生效;舊請求會取消,但其歷史與替換關聯仍保留。減量可能保持排程狀態直到續約。無變更請求不會修改供應商狀態,直接完成並保留既有排程及其保留帳號選擇。direction: unchanged 與 preserved_operation_id 說明此結果;請求完成不表示保留的未來排程已生效。回應不明確時仍使用同一個鍵。選用的 --wait 只觀察作業。

供應商受理不代表增加數量的款項已支付。完成作業需要確認款項歸屬,並完成伺服器處理。不得從模糊結果推定成功或再次扣款。這些範例不代表獲准啟用伺服器或執行真實帳務變更。

Preview已驗證一件經個別審核的增加作業復原,以及一件減少數量排程。這不代表一般發票歸屬、續訂時套用或Production準備已完成。最新驗收狀態請參閱實作計畫。

必須有實際從付費方案轉為免費方案的紀錄。初始免費方案或付費帳號數量減少排程不會建立此轉換。確認保留帳號前,請先讀取目前轉換:

Terminal window
ankk --json billing downgrade-selection --brand BRAND_ID --environment preview --connection OAUTH_CONNECTION_ID
ankk --json billing confirm-downgrade-selection --brand BRAND_ID --transition-id TRANSITION_ID --account-ids ACCOUNT_ID --environment preview --connection OAUTH_CONNECTION_ID

owner 可針對目前這次轉換確認一次,包括已自動完成初始選擇的情況。相同選擇會直接回傳儲存結果,不做變更;不同選擇或過期的轉換會被拒絕。未選取的帳號會被鎖定。系統會重新檢查目前 owner 權限、免費方案容量與帳號資格。此確認不同於取消排程中的減量。選用的 --idempotency-key 可識別確認請求,但不允許修改已確認的選擇。仍須符合伺服器啟用與用戶端資格條件。

notifications list/get/summary 只讀取,不會標記已讀。明確指定的 --brand 選擇品牌通知;不會套用設定中的預設品牌。請有意識地使用 mark-read 或 mark-all-read。announcements 同樣區分讀取與確認,另提供 banner。公告對象包括已驗證使用者、平台管理員,或目前具有品牌成員資格的使用者。僅有品牌 admin 身分,無法取得平台管理員公告的存取權。

feedback create 需要品牌與冪等鍵。feedback get 依目前存取權,回傳目前使用者自己的提交內容及支援回覆。請勿在回饋中包含機密或 token。

webhooks list/get/create/update/delete 使用使用者 OAuth 與選定品牌。寫入需要冪等鍵。變更前請審閱目的地 URL 與事件類型;讀取不會揭露簽署機密。刪除仍保留稽核歷程。保留的 v1 伺服器程式碼不是這些命令的備援驗證方式。

支援時,--wait 為選用項目,並受 --wait-timeout 限制。本機逾時不會取消或重複伺服器工作。復原前,先查看 operation、錯誤代碼、請求 ID 及建議的下一步。成員資格或 OAuth 變更後須重新檢查目前權限;切換介面無法繞過權限。

HTTP、CLI 與 MCP 共用相同業務契約。工具是否顯示取決於伺服器與用戶端的可用性。Skills 提供程序,不提供憑證或批准。請參閱 Skills 指南,瞭解 ankk-publish 與 ankk-analyze 的安裝方式及可用版本。

v2 請使用使用者 OAuth;舊品牌 key 無法驗證這些工作流程。本指南未公告 v1 的終止日期。Windows、行動裝置與螢幕閱讀器的相容性尚未驗證。