Python - Как отфильтровать в Facebook Marketing API AdAccount.get_lead_gen_forms?
Как я могу определить фильтр для API-интерфейса Facebook Marketing для метода get_lead_gen_forms? Я попытался передать некоторые параметры, но ничего не работает.
Мне нужно отфильтровать по дате, потому что количество данных превышает мой лимит. Вот мой код (* код уже работает, нужна помощь с фильтром):
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adaccount import AdAccount
FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)
account = AdAccount('act_accountid')
leadgenforms = account.get_lead_gen_forms()
А вот те параметры, которые я пробовал:
# attempt 1
params = {
'time_range': {
'since': date_start,
'until': date_end
}
}
leadgenforms = account.get_lead_gen_forms(params=params)
# attempt 2
params = {
'filtering': [{
'field': 'created_time',
'operator': 'GREATER_THAN',
'value': date_start }]
}
leadgenforms = account.get_lead_gen_forms(params=params)
1 ответ
Вы должны фильтровать по полю time_created
вместо created_time
,
Из раздела Фильтрация Ссылки документа здесь:
В этом примере выполняется фильтрация потенциальных клиентов по временным меткам. Метки времени должны быть метками времени Unix.
curl -G \ --data-urlencode 'filtering=[ { "field": "time_created", "operator": "GREATER_THAN", "value": 1516682744 } ]' \ -d 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v2.11/<AD_ID>/leads
Итак, во второй попытке пример:
# attempt 2
params = {
'filtering': [{
'field': 'time_created',
'operator': 'GREATER_THAN',
'value': date_start }]
}
leadgenforms = account.get_lead_gen_forms(params=params)
вы должны использовать, объявление date_start
, дата в формате отметки времени unix:
количество секунд с начала эпохи Unix
Надеюсь это поможет