You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 5中调用Facebook Ads API获取商务管理账号广告账户遇问题

解决Facebook商务管理账号获取广告账户数据的问题

嘿,我来帮你搞定这个问题!你遇到的错误是因为adaccounts字段在Graph API v2.12之后就被官方废弃了,现在得用Business Management API里的新端点来获取数据,下面是具体的解决方案:

一、明确正确的API和端点

你需要使用Facebook Business Management API(这是专门针对商务管理账号操作的官方API),对应的有效端点有两个:

  • /<business-id>/owned_ad_accounts:获取商务管理账号拥有的广告账户
  • /<business-id>/client_ad_accounts:获取商务管理账号管理的客户广告账户

建议使用最新的Graph API版本(比如v18.0),旧版本的兼容性问题会很多。

二、权限准备

确保你的应用已经申请并获得了以下必要权限(需要商务管理账号管理员给应用授权这些权限):

  • business_management:访问商务管理账号数据的基础权限
  • ads_management:获取广告账户数据的核心权限

如果不确定token是否包含这些权限,可以用Facebook的Token Debug工具来验证。

三、Graph API Explorer测试步骤

  1. 打开Graph API Explorer,选择你创建的应用
  2. 选择最新的API版本(比如v18.0)
  3. 在请求地址栏输入:/<你的商务管理账号ID>/owned_ad_accounts
  4. 在「Fields」输入框添加你需要的字段,比如id,name,currency,account_status
  5. 确保使用的access token是拥有对应权限的管理员token,然后点击「Submit」

这样就能正常获取到广告账户数据了,不会再出现废弃字段的错误。

四、Angular 5中的代码示例

用Angular的HttpClient来发起请求,示例代码如下:

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

@Injectable()
export class FacebookAdsService {
  private apiVersion = 'v18.0';

  constructor(private http: HttpClient) {}

  // 获取商务管理账号拥有的广告账户
  getOwnedAdAccounts(businessId: string, accessToken: string) {
    const url = `https://graph.facebook.com/${this.apiVersion}/${businessId}/owned_ad_accounts`;
    const params = {
      access_token: accessToken,
      fields: 'id,name,currency,account_status'
    };
    return this.http.get(url, { params });
  }
}

调用这个方法时,记得传入正确的商务管理账号ID和有效的access token。

注意事项

  • 不要使用v2.12这类旧API版本,Facebook会持续废弃旧接口,尽量保持API版本在v17.0及以上
  • 如果仍然报错,优先检查access token的权限是否完整,以及商务管理账号ID是否正确
  • 确保你的应用已经在商务管理账号中被添加为关联应用

内容的提问来源于stack exchange,提问作者Stevie Star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:11:49