Facebook Ruby SDK无法拉取广告账户Campaign列表的异常问题
解决Facebook Business SDK无法从广告账户拉取全部Campaigns的问题
问题原因
报错「Tried accessing nonexisting field (campaigns) on node type (Page)」直接说明你代码里错误地对Page对象调用了campaigns字段,而不是对Ad Account对象操作——Page节点本身没有campaigns这个可访问字段,自然会触发报错。
解决方案
1. 确认广告账户ID格式正确
广告账户ID必须以act_开头(比如act_1234567890),不要用Page的ID或其他格式ID来初始化AdAccount对象。
2. 修正代码逻辑(Python示例)
确保基于正确的Ad Account对象调用拉取Campaign的接口:
from facebookbusiness.adobjects.adaccount import AdAccount from facebookbusiness.api import FacebookAdsApi # 初始化SDK FacebookAdsApi.init(access_token='你的有效access_token') # 用正确的广告账户ID创建AdAccount实例 ad_account = AdAccount('act_你的广告账户ID') # 拉取Campaigns,可指定需要的字段 campaigns = ad_account.get_campaigns(fields=['id', 'name', 'status']) for campaign in campaigns: print(f"Campaign ID: {campaign['id']}, Name: {campaign['name']}")
3. 额外验证(你已完成可忽略)
既然你已经单独拉取AdAccount和Campaign信息验证过权限,只需确保当前操作的对象是Ad Account而非Page即可。
内容的提问来源于stack exchange,提问作者mark DE Jong
相关产品推荐
相关产品推荐

