Невозможно получить агрегированные данные по периодам - ​​API Graph Facebook с Python - PullRequest
1 голос
/ 26 сентября 2019

Надеемся на лучшее для всех сегодня.

Контекст:

В настоящее время я использую аналитику Facebook для получения данных со своих конкретных страниц Facebook о моих посетителях и их сообщениях.Эти данные затем вводятся в ежемесячный отчет вручную.Я создаю скрипт на Python для извлечения этих данных и форматирования .csv для меня.

Ожидаемый результат:

Например, здесь я ввел 1 августа- 31 в Facebook Analytics, и я вижу демографическую разбивку для посетителей моей страницы за это время.

Пример веб-интерфейса Facebook Analytics

Мужской: 5,26 К Женский: 679

Я ожидаю, что мой код будет тянуть этицифры или, по крайней мере, что-то очень похожее.

Что я пытаюсь:

Это запрос python на facebook.get_object, который я делаю в API Graph Facebook-

pageDemographics = (graph.get_object(page["pageId"] + "/insights/page_fans_gender_age?date_preset=last_month"))

print(pageDemographics)

Это приводит к странице данных, например, так ..

JSON Результат

По сути список из 31 словаря, гдекаждый словарь представляет день и демографическую разбивку {пол, возрастная группа: количество людей}, {пол, возрастная группа: количество людей} и т. д.

Каждый день в этом списке словарей, кажется, отличаетсязначения, иногда выше, а иногда ниже, чем днем ​​ранее.Более того, например, когда все мужчины за один день суммируются, они могут значительно превысить число мужчин, найденных в веб-интерфейсе Facebook Analytics, за период с 1 по 31 августа. Например, мужчины 31 августа,согласно моему коду, 97 110 по сравнению с 5 260 веб-интерфейса.

Я пытался выполнить этот вызов с добавленным «периодом», чтобы объединить данные в месяц, подобный этому.

pageDemographics = (graph.get_object(page["pageId"] + "/insights/page_fans_gender_age?date_preset=last_month&period=month"))

print(pageDemographics)

странно, это возвращает ...

{"data": [], "paging": {"previous": "https://graph.facebook.com/v3.3/pageid/insights?access_token=token&metric=page_fans_gender_age&period=month&date_preset=last_month&since=1561964400&until=1564642800", "next": "https://graph.facebook.com/v3.3/pageid/insights?access_token=token&metric=page_fans_gender_age&period=month&date_preset=last_month&since=1567321200&until=1569999600"}}

* примечание, идентификаторы страниц и токены были отредактированы

Что делать дальше:

Я пытался выяснить, как лучшесформируйте мой запрос, используя api-документацию на Facebook: https://developers.facebook.com/docs/graph-api/reference/v4.0/insights

Я был бы очень признателен за помощь в формировании этих запросов для получения данных, которые мне нужны.ИЛИ хотя бы объяснение того, что не так с моим кодом.

Ура, давайте продолжим учиться,

...