Как получить «ежедневные» просмотры видео Facebook API? - PullRequest
0 голосов
/ 15 октября 2018

У меня небольшой опыт работы с Facebook Graph API.Мне нужно получать ежедневные просмотры для видео в отличие от просмотра за всю жизнь.

Документы FB API не показывают, что это вариант ( время жизни - только параметр периода) https://developers.facebook.com/docs/graph-api/reference/video/video_insights/

Однако я видел еще один пост на SO, отвечающий на этот вопрос, но по некоторым причинам он не работает для меня ( Получение просмотра видео с помощью Facebook API ).

Это мой успешный вызов API, который возвращает ожидаемую статистику за все время жизни:

/{video_id}/video_insights/total_video_views/lifetime

Я думал, что должен сделать:

/{video_id}/video_insights/total_video_views/day

... но получил эту ошибку:

{
  "error": {
    "message": "(#100) Invalid parameter",
    "type": "OAuthException",
    "code": 100,
    "error_data": "Daily query is not supported for metric (total_video_views)"
  }
}

Затем, как и предполагал пост SO, я попробовал другой параметр периода:

/{video_id}/video_insights/total_video_views/month

... и получил:

{
  "error": {
    "message": "(#100) Invalid parameter",
    "type": "OAuthException",
    "code": 100,
    "error_data": "Period should be either lifetime or day."
  }
}

.... что говорит о том, что день должен быть приемлемым параметром, как время жизни

В конце концов, просто для забавы, я думал, что передам "неправильный" параметр - Day :

/{video_id}/video_insights/total_video_views/Day

... и получил это:

{
  "error": {
    "message": "(#100) For field 'video_insights': period must be one of the following values: day, week, days_28, month, lifetime",
    "type": "OAuthException",
    "code": 100
  }
}

Это говорит о том, что все эти значения хороши ( day , неделя , days_28 , month , life ), но они не работают.

Я действительно запутался здесь.Я видел ежедневные проблемы с просмотром видео на веб-странице FB / insights и думал, что это можно сделать через API.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вот мое решение (после запуска через поддержку FB)

в основном,

1) я получаю список всех сообщений:

fields='object_id,type'
    url="https://graph.facebook.com/v3.2/{}?access_token={}&fields={}&limit={}".format(resource_id,access_token,fields,limit)
while url:
        rec=requests.request(method="GET",url=url)
        content = json.loads(rec.content)
        if "next" in content["paging"]:
            url=content["paging"]["next"]
        else:
            url=False
            break 

2) затемя перебираю каждое из них (фильтруя видео) и извлекаю данные для записи , которая содержит это видео, а не video само по себе (что оказалось невозможным при ежедневной группировке)

insights=[]
video_post_id=page_id+"_"+video_id
metric="post_video_views"

url_insight=f"https://graph.facebook.com/v3.2/{video_post_id}/insights?metric={metric}&since={since}&until={until}&pretty=0&access_token={access_token}"
while url_insight:
    rec=requests.request(method="GET",url=url_insight)
    insight = json.loads(rec.content)
    if "next" in insight["paging"]:
        url_insight=insight["paging"]["next"]
    else:
        url_insight=False
        break

это сработало для меня

0 голосов
/ 11 декабря 2018

Я столкнулся с той же проблемой вскоре после вашего поста.Все мои тесты и исследования привели меня к убеждению, что Facebook лишил возможности извлекать что-либо, кроме жизни.Прочитав весь журнал изменений за последние несколько выпусков, я не вижу никаких доказательств того, что это изменение было задокументировано Facebook.Это, безусловно, очень разочаровывает.

Ответы API четко указывают, что «день» должен быть допустимым периодом, что заставляет меня думать, что оно было поспешно удалено.

К сожалению, я не вижу надежного обходного пути,Можно достичь ежедневного приближения, извлекая время жизни каждые 24 часа и вычисляя разницу между ними.Это может быть только приблизительным показателем, поскольку могут возникнуть проблемы с согласованием данных в течение определенного периода времени.

Очень жаль, что эта проблема не получила никакого решения, поскольку она является основой API Video Insights Facebook.

...