debug-webhooks

作者: facebook

排解 Meta 應用程式的 webhook 問題——檢查作用中的訂閱、找出設定錯誤,並傳送測試負載以驗證傳遞。當……時使用。

npx skills add https://github.com/facebook/agentic-tools --skill debug-webhooks

Debug Webhooks

Diagnose and fix webhook delivery issues for a Meta app.

Workflow

  1. Start tracking. Before any other work, call devtools_skill_invocation with action start and skill_name debug-webhooks. Pass skill_name debug-webhooks on every devtools_* tool call in the following steps.

  2. Get context. Ask the user for:

    • The app name or ID — if they give a name (or aren't sure of the ID), resolve it to an app_id via devtools_app_list (action list); if several apps match or it's ambiguous, show the candidates (name, ID, viewer role) and ask the user to pick
    • What's going wrong (not receiving events? wrong data? specific topic?)
  3. Inspect current state. Run in parallel:

    • devtools_webhook_list with action list_subscriptions — all active subscriptions
    • devtools_webhook_list with action list_topics — all available topics (for comparison)
  4. Diagnose. Check for common issues:

    No subscriptions found

    • The topic the user expects events from has no active subscription
    • Suggest using /webhook-setup to create one

    Subscription exists but no events received

    • Send a test payload: devtools_webhook_test with action test_send for the relevant topic and field
    • If test fails: callback URL may be down, unreachable, or not returning 200
    • If test succeeds but real events don't arrive: the issue is likely on the app side (permissions, page subscriptions, etc.)

    Wrong fields subscribed

    • Compare subscribed fields against what the user expects to receive
    • If fields are missing: use devtools_webhook_manage with action update_fields, passing the missing fields via add_fields
    • If extra fields cause noise: use devtools_webhook_manage with action update_fields, passing unwanted fields via remove_fields

    Multiple subscriptions on same topic

    • Flag potential conflicts or duplicate delivery
  5. Test delivery. For each relevant subscription:

    • Call devtools_webhook_test with action test_send
    • Report whether the test payload was accepted by the callback endpoint
  6. Report findings:

    Report Format

    Active Subscriptions

    • Topic, fields, callback URL for each

    Issues Found

    • Each issue with severity (critical / warning / info)
    • Root cause analysis
    • Suggested fix

    Test Results

    • Topic/field tested → success or failure
    • Response details if available

    Recommended Actions

    • Ordered list of fixes to apply
  7. Apply fixes if the user agrees:

    • Add missing fields via update_fields
    • Remove unwanted fields via update_fields
    • Callback URL changes: update_fields cannot change the callback URL — it has no callback_url parameter and silently ignores one. To change the URL, re-run subscribe for the topic with the new URL and verify token: subscribe is an upsert (create-or-update), so it overwrites the URL in place. You do NOT need to unsubscribe first.
  8. End tracking. After completing all preceding steps, call devtools_skill_invocation with action end and skill_name debug-webhooks.

Common Issues Reference

SymptomLikely CauseFix
No events receivedNo subscription existsSubscribe to the topic
No events receivedCallback URL returns non-200Fix server endpoint
No events receivedApp lacks page/account subscriptionSubscribe the page to the app
Partial eventsMissing fields in subscriptionAdd fields via update_fields
Duplicate eventsMultiple subscriptions on same topicUnsubscribe duplicates
Test works, real events don'tPermission or page-level issueCheck app permissions and page subscriptions
Need to change callback URLupdate_fields has no callback_url param (silently ignored)Re-run subscribe for the topic with the new URL + verify token — it upserts and overwrites the URL in place; no unsubscribe needed

來自 facebook 的更多技能

gc-safe-coding
facebook
完整解釋與理由請參閱 doc/GCSafeCoding.md。
app-review-prep
facebook
準備將 Meta 應用程式提交至 App Review——檢查目前狀態、未完成的要求、已授予的權限及提交紀錄。請在提交應用程式前使用……
api-health
facebook
監控 Meta 應用程式的 API 健康狀態 — 檢查速率限制、呼叫量與 API 棄用情況。用於診斷節流問題、規劃容量,或為 API 版本…做好準備。
api-integration
facebook
引導開發者從零開始設定 Meta API 整合 — 找出正確的 API、取得設定指南、驗證需求、…
webhook-setup
facebook
端到端設定 Meta 應用程式的 Webhook — 探索可用主題、訂閱欄位,並透過測試負載驗證。在為… 設定 Webhook 時使用。
test-ui
facebook
使用 iwsdk CLI 針對 poke 範例測試 UI 系統(PanelUI、ScreenSpace)。
flags
facebook
檢查並比較 React 發佈通道中的功能旗標狀態。檢視所有通道(www、www-modern、canary、next、experimental、rn 變體)的旗標,或使用 --diff 比較特定通道。輸出格式包括預設表格檢視、CSV 匯出及清理狀態分組。旗標狀態以符號表示:啟用(✅)、停用(❌)、變體測試(🧪)、僅分析(📊)。常見陷阱:__VARIANT__ 旗標在 www 上會以兩種狀態進行測試;使用 --diff 可找出有意義的差異。
compliance-check
facebook
檢查 Meta 應用程式的合規狀態——呈現待處理的必要動作、有效違規事項,以及附帶補救指引的建議。用於稽核⋯