python - Python facebook_business API 异步作业对完整结果进行分页
问题描述
Facebook 抱怨我对洞察 API 的 GET 请求太大,我需要通过它们的异步功能实现 POST 请求逻辑。
这是我的工作代码:
from facebook_business.api import FacebookAdsApi
fb_api = FacebookAdsApi.init(access_token=os.getenv('USER_API_TOKEN'))
from facebook_business.adobjects.adaccount import AdAccount
account = AdAccount('act_{}'.format(os.getenv('ADS_ACCT_ID')))
from facebook_business.adobjects.adreportrun import AdReportRun
date_start = "2021-03-15"
date_end = "2021-03-21"
from facebook_business.adobjects.adsinsights import AdsInsights
args = dict(
fields=[
AdsInsights.Field.campaign_name,
AdsInsights.Field.ad_name,
AdsInsights.Field.clicks,
],
params={
'time_range': {
'since': date_start,
'until': date_end,
},
'level': 'ad',
'time_increment': 1
},
is_async=True,
)
async_job = account.get_insights(**args)
async_job.api_get()
while async_job[AdReportRun.Field.async_status] != "Job Completed":
time.sleep(10)
async_job.api_get()
time.sleep(10)
resp_data = async_job.get_result(params={"limit": 1000})
问题是这只返回 1000 行。如何对整个结果集进行分页?
解决方案
推荐阅读
- api - 如何测试主要使用外部 API 的代码?
- c++ - 1秒可以打印多少个数字
- python - 如何在python中创建一个单独的处理队列?
- ios - 带有 SwiftUI 视图和 Swift 类的 NSFetchRequest - “executeFetchRequest:错误:获取请求必须有一个实体。”
- javascript - 从浏览器自动清除缓存
- google-cloud-platform - 将命令 (mqtt) 从托管在谷歌云 (Compute Engine - VM) 中的 Web (Apache+php+Ajax) 发送到特定设备 (raspberry pi) 的最佳方式
- macos - Mac: Text-to-Speech: 如何为 TTS 功能添加缩写?
- java - Blynk 的 Raspberry pi 服务器,启动服务器出现问题
- java - 如何在不使用零的情况下终止用户输入?
- mysql - 我在 phpmyadmin 中有错误 #1064 说无法识别的语句类型。(在位置 46 的“where”附近)