【问题标题】:(#2635) You are calling a deprecated version of the Ads API. Please update to the latest version(#2635) 您正在调用已弃用的广告 API 版本。请更新到最新版本
【发布时间】:2022-01-06 09:03:53
【问题描述】:

所以有很多类似的问题,虽然我没有设法在其中任何一个中找到答案,所以我们来了。我正在尝试使用 Python 从 Facebook API 中提取一些数据,这是我得到的错误:

facebook_business.exceptions.FacebookRequestError: 

  Message: Call was not successful
  Method:  GET
  Path:    https://graph.facebook.com/v10.0/[hidden]/ads
  Params:  {'summary': 'true'}

  Status:  400
  Response:
    {
      "error": {
        "message": "(#2635) You are calling a deprecated version of the Ads API. Please update to the latest version: v11.0.",
        "type": "OAuthException",
        "code": 2635,
        "fbtrace_id": "[hidden]"
      }
    }

我直接前往我的 Facebook 个人资料中的应用设置,它看起来像(图片相关)

请注意,在错误消息中,路径中有v10.0,并且在应用配置文件中的任何更改API版本之前是v7.0,这很奇怪,是否有其他一些API需要将其版本切换为好?将那个切换到 v12.0(或 v11.0)并没有帮助,所以我真的不知道该怎么办了。

另一个重要的注意事项是,这段代码是 Matillion 中计划作业的一部分,在版本切换后,如果在本地运行,代码确实会返回数据,所以我的另一个预感是需要对 Matillion 进行一些更改环境也好。

代码如下:

from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.adreportrun import AdReportRun
import time
from io import StringIO
import json
import boto3

access_token = [hidden]
app_secret = [hidden]
app_id = [hidden]


FacebookAdsApi.init(app_id, app_secret, access_token)

fb_account = AdAccount('[hidden]')

params = {'time_range': {'since': '2022-01-05', 'until': '2022-01-06'},
            'level':'ad',
            'action_breakdowns':['action_device','action_type'],
            'TimeIncrement':1,
             }
fields = [<a pretty big list of fields>]

ads=fb_account.get_ads()
async_job = fb_account.get_insights(params = params, fields = fields,is_async=True)
async_job.api_get()

while async_job[AdReportRun.Field.async_status] != 'Job Completed' or async_job[AdReportRun.Field.async_percent_completion] < 100:
        time.sleep(1)
        async_job.api_get()
time.sleep(1)
responce=async_job.get_result()


print(response)

如果我忘记提及一些细节,请随时提出任何问题,谢谢!

【问题讨论】:

    标签: python facebook-graph-api facebook-business-sdk matillion


    【解决方案1】:

    默认情况下,您使用的 Facebook Python 模块不会随 Matillion 一起安装。我想一定有人通过关注this Matillion guide 安装了它们?也许它是很久以前完成的,在这种情况下,您可能只需要使用与较新的 Facebook API 对话的更新版本重新安装模块。

    作为 Python 的替代方案,您还可以查看 Facebook Ads Query component,它是一个顶级的 Matillion 编排组件,不需要在 Python 中进行任何编码。根据文档,它使用 API 的 V11。如果您需要的数据在该组件的 data model 中,那么总体上它的工作量可能比手工编码要少。

    【讨论】:

      猜你喜欢
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      相关资源
      最近更新 更多