Facebook 营销 API 在使用时不起作用 正是他们所要求的?

问题描述 投票:0回答:3

我的代码产生了错误,我已经 * 列出了明显树脂的所有详细信息,但我可以向您保证,据我所知,这些详细信息是正确的


from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.campaign import Campaign
from facebook_business.api import FacebookAdsApi

access_token = '#############'
app_secret = '##############'
app_id = '###############'
id = '############'
FacebookAdsApi.init(access_token=access_token)

fields = [
]
params = {
  'name': 'My campaign',
  'objective': 'OUTCOME_TRAFFIC',
  'status': 'PAUSED',
  'special_ad_categories': [],
}
print (AdAccount(id).create_campaign(
  fields=fields,
  params=params,
))

这是营销 API 文档的示例代码:https://developers.facebook.com/docs/marketing-apis/get-started 我已经输入了我自己的详细信息: 访问令牌 应用秘密 应用程序 ID 这就是问题所在,我输入了我的广告帐户 ID,然后收到一个错误,将在下面显示它,如果我输入沙盒广告帐户 ID,我会收到相同的错误。我已经按照要求检查了 graph api 文档,但无济于事,我不是最擅长理解文档,但我尝试在 graph api 文档中找不到任何可以帮助我的东西

exception has occurred: FacebookRequestError


  Message: Call was not successful
  Method:  POST
  Path:    https://graph.facebook.com/v18.0/1319248112287380/campaigns
  Params:  {'name': 'My campaign', 'objective': 'OUTCOME_TRAFFIC', 'status': 'PAUSED', 'special_ad_categories': '[]'}

  Status:  400
  Response:
    {
      "error": {
        "message": "Unsupported post request. Object with ID '1319248112287380' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
        "type": "GraphMethodException",
        "code": 100,
        "error_subcode": 33,
        "fbtrace_id": "AEe1jri5iGEm023TkvE98-x"
      }
    }
  File "C:\Users\danie\Documents\easyapps\facebook_mvp.py", line 25, in <module>
    print (AdAccount(id).create_campaign(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
facebook_business.exceptions.FacebookRequestError: 

  Message: Call was not successful
  Method:  POST
  Path:    https://graph.facebook.com/v18.0/1319248112287380/campaigns
  Params:  {'name': 'My campaign', 'objective': 'OUTCOME_TRAFFIC', 'status': 'PAUSED', 'special_ad_categories': '[]'}

  Status:  400
  Response:
    {
      "error": {
        "message": "Unsupported post request. Object with ID '1319248112287380' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
        "type": "GraphMethodException",
        "code": 100,
        "error_subcode": 33,
        "fbtrace_id": "AEe1jri5iGEm023TkvE98-x"
      }
    }

如有任何帮助,我们将不胜感激

我想要代码发送一个请求到API,从那里我将扩展它,我尝试交换所有的ID,我尝试创建一个新帐户但没有运气,从那里我将把它全部变成一个库无论如何,等等,

python-3.x facebook facebook-graph-api
3个回答
1
投票

根据您的示例,您似乎正在尝试在特定广告帐户下创建广告系列。该错误消息表明您的广告帐户 ID 错误,或者您没有正确的权限。

当您生成访问令牌时,我相信您将需要

ads_management
权限来实现您想要实现的目标。

我的建议是使用 graph API 浏览器工具 授予适当的权限并测试调用。

您可以使用访问令牌调试器工具验证您的访问令牌具有哪些权限。确保

ads_read
字段中至少有
ads_management
scopes

另一个提示,您可以在加载广告管理器时从网址中获取广告帐户 ID。这是

act
GET 参数。


0
投票

经过大量调查后我发现, facebook Ads API 已经过时了,至少使用 python2,我尝试使用curl 作为 python 的子进程,并且成功工作完美 这是代码

import subprocess

# Define the curl command as a list of strings
curl_command = [
    'curl',
    '-X',
    'POST',
    '-F',
    'name="My campaign"',
    '-F',
    'objective="OUTCOME_TRAFFIC"',
    '-F',
    'status="PAUSED"',
    '-F',
    'special_ad_categories=[]',
    '-F',
    f'access_token=<ACCESS_TOKEN>',
    f'https://graph.facebook.com/v18.0/act_<AD_ACCOUNT_ID>/campaigns'
]

# Execute the curl command
try:
    result = subprocess.run(curl_command, capture_output=True, text=True, check=True)
    print(result.stdout)
except subprocess.CalledProcessError as e:
    print(f"Command failed with error: {e}")

0
投票

我连续三天都遇到同样的错误。结果帐户 ID 需要在实际帐户 ID 号之前以 act_ 开头。这就是为我解决的问题。

© www.soinside.com 2019 - 2024. All rights reserved.