繁体   English   中英

Facebook 业务 SDK 为 Python。有没有办法从这个库进行异步批处理调用?

[英]Facebook Business SDK for Python. Is there a way to make async batch calls from this library?

我一直在寻找一种方法来从 github 存储库自述文件和 facebook 提供的文档中的 facebook 库进行异步批处理调用。我遇到的问题是我想创建一个广告集的副本。 这样做的适当调用非常简单,因为我将在以下代码中显示:

api = FacebookAdsApi.init([APP_ID],[APP_SECRET],[ACCESS_TOKEN])
parameters = {...}
ad_set = AdSet([id])
ad_set.create_copy(fields,parameters)

这很简单并且有效,但是因为我想复制所有子对象,所以它只有在有三个或更少的孩子时才有效。 之后它显示以下错误:

`The number of ad objects you are trying to copy at this time is too large. The total number of ads, ad sets, and campaigns to copy at once must be fewer than 3. If you are using regular API mode, please consider calling the API in the async batch so that it can copy many more ad objects, https://developers.facebook.com/docs/graph-api/asynchronous-batch-requests.`

在文档中,它告诉您如何为异步批处理发出 http 请求。 但我想知道的是,是否有办法从 facebook-business-sdk 进行异步批处理调用以及如何进行。 我现在将在我使用批处理的地方向您展示我的代码,但由于它们不是异步的,因此当子级少于 3 个时它们仍然可以工作。

api = FacebookAdsApi.init([APP_ID],[APP_SECRET],[ACCESS_TOKEN])
parameters = {...}
ad_set = AdSet([id])
api_batch = api.new_batch()
ad_set.create_copy(fields,parameters,batch=api_batch)
api_batch.execute()

这是片段 Python 3.7 Facebook SDK API v7.0

from facebook_business import FacebookSession
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adset import AdSet

session = FacebookSession('APP_ID','APP_SECRET','ACCESS_TOKEN')
api = FacebookAdsApi(session)
FacebookAdsApi.set_default_api(api)
    
api_batch = api.new_batch()

adSet = AdSet(dataset_id)

copy_params = {
      "deep_copy":True,
       "status_option": 'PAUSED'
    }
async_job = adSet.create_copy(
    params = copy_params,
    batch=api_batch
  )
api_batch.execute()

print(api.get_num_requests_succeeded())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM