Я пытался получить данные Ad Analytics со ссылкой на эту страницу
Похоже, что выходные данные API разделены на части с помощью нумерации страниц.
Итак, я следовал документу , объясняющему, как выполнять разбиение на страницы в LinkedIn API. Однако я продолжаю испытывать «Установка начального значения пейджинга недопустима» ошибка. Этого не происходит, когда я запрашиваю первую страницу, но каждый раз, когда я запрашиваю «следующую страницу», возникает ошибка.
Вот что я сделал в Python:
import requests
# Define token, base_url, and parameters
headers = {'Authorization':'Bearer ' + 'MY_TOKEN'}
base_url = 'https://api.linkedin.com/v2/adAnalyticsV2/'
params = {
'q': 'analytics',
'dateRange.start.month': '4',
'dateRange.start.day': '1',
'dateRange.start.year': '2019',
'timeGranularity': 'DAILY',
'pivot': 'CREATIVE',
'accounts':'MY_ACCOUNT',
'campaignGroups': 'MY_CAMPAIGN_GROUP',
'count':100,
}
# Get analytics data by paginating
url_stack = [base_url]
while url_stack:
# Pop the url in the list, now the list is empty
wurl = url_stack.pop()
# Make request to API
r = requests.get(wurl, params=params, headers=headers)
if r.ok:
print('Request success')
print('URL of successful request:\n- {}\n'.format(r.url))
else:
print('Request fail')
print('URL of failed request:\n- {}'.format(r.url))
print('Request detail:\n- {}\n'.format(r.json()))
# If paging information exists in the response,
if 'paging' in r.json().keys():
# Use the inforamtion for the next page by updating 'params' dict
params['start'] = r.json()['paging']['start'] + r.json()['paging']['count']
params['count'] = r.json()['paging']['count']
# Append updated URL with next paging info
url_stack.append(wurl)
А вот вывод из кода выше:
# Output:
Request success
URL of successful request:
- https://api.linkedin.com/v2/adAnalyticsV2/?q=analytics&dateRange.start.month=4&dateRange.start.day=1&dateRange.start.year=2019&timeGranularity=DAILY&pivot=CREATIVE&accounts=MY_ACCOUNT&campaignGroups=MY_CAMPAIGN_GROUP&count=100
Request fail
URL of failed request:
- https://api.linkedin.com/v2/adAnalyticsV2/?q=analytics&dateRange.start.month=4&dateRange.start.day=1&dateRange.start.year=2019&timeGranularity=DAILY&pivot=CREATIVE&accounts=MY_ACCOUNT&campaignGroups=MY_CAMPAIGN_GROUP&count=100&start=100
Request detail:
- {'serviceErrorCode': 2, 'message': 'Setting a paging start value is not permitted', 'status': 400}
Насколько я понимаю, и как уже упоминалось в документе - Чтобы разбить на страницы результаты, начните с начального значения 0 и значения счетчика N. Чтобы получить следующую страницу, установите начальное значение N в то время как значение счетчика остается неизменным. Последующие страницы начинаются с 2N, 3N, 4N и т. Д. , я должен установить начальное значение при передаче запроса для n-й страницы, но почему-то это не сработало, как я задумал!
Кто-нибудь имеет подобный опыт, и кто-нибудь может поделиться, как решить эту проблему?
Или, пожалуйста, не стесняйтесь указывать мне, что я делаю неправильно в коде.
Спасибо!