Meta Business GraphQL:在运行变更脚本后,“添加支付方式”按钮仍然处于禁用状态
我正在使用GraphQL逆向分析Meta Business Suite MV4B的引导流程。我的目标是实现支付方式设置的自动化。
问题: 我已成功执行以下序列:
CreateMV4BAccountMutationMV4BOnboardingViewContainerQuery(用于获取paymentAccountID)useMV4BCreateBizApplicationMutation
脚本在没有错误的情况下完成,且支付账户已创建。然而,当我刷新Business Suite UI时,“Add Payment Method” 按钮仍然处于禁用状态(灰色),或者UI未能反映账户已准备好输入卡信息。
当前脚本逻辑:
JavaScript
// I am fetching the paymentAccountID from the onboarding query
paymentAccountID = response.data.business.mv4b_billable_account.billing_payment_account.payment_legacy_account_id;
// Then I trigger the application mutation
// variables: {"input":{"client_mutation_id":"4","business_id": bm_id, "selected_country":"CL"...}}
我已尝试:
- 运行
BillingGKQuery和BillingQEQuery以匹配网页会话的状态。 - 检查
BillingCheckHasRequiredAccountInfoStateQuery。
问题: 是否存在一个特定的“激活”变更(mutation)或最终的 state_update 调用来启用支付UI?看起来我似乎缺少创建应用与实际启用支付方式输入之间的桥梁。
对于这一步缺失的GraphQL doc_id 或mutation名称,任何帮助都将不胜感激。
解决方案
你所看到的很可能是因为支付账户创建与UI的合格状态并非同一事。
Meta Business Suite通常根据后端合格性检查、引导状态、权限、风控/合规验证以及内部功能标志的组合来推导“添加支付方式”按钮的状态。成功执行 CreateMV4BAccountMutation 和 useMV4BCreateBizApplicationMutation 可能会创建底层记录,但并不一定让账户进入UI认为已准备好附加支付工具输入的状态。
有几件事需要核对:
- 在变更后重新运行引导查询,并对比操作前后的所有状态字段。
- 在正常浏览器会话中启用按钮时,检查生成的网络流量,查找额外的状态获取查询,而不仅仅是变更。
- 检查账户是否需要商业验证、国家/地区验证或其他合规相关字段,才能附加支付方式。
- 验证当前登录的用户在该商业账户上是否具备所需的计费/管理员权限。
- 查找引导查询返回的合格性/状态字段,而不仅仅再次查找另一条变更。在许多Meta的流程中,UI的状态是由服务器端的合格性响应驱动的。
如果你在使用未公开的内部GraphQL端点,则没有公开记录的 doc_id 或此引导步骤的变更序列。Stack Overflow用户在没有访问Meta私有实现细节的情况下,可能无法识别缺失的内部mutation。
对于受支持的自动化,建议使用官方的Meta Marketing API和 Business APIs,因为内部GraphQL合同可能会在不通知的情况下变动,且可能包含客户端无法绕过的服务端校验。