如何获得 "daily" Facebook 视频观看量 API?
How to get "daily" video views Facebook API?
我有一点处理 Facebook Graph 的经验API。我需要获取视频的每日观看次数,而不是终生观看次数。
FB API 文档没有显示这是一个选项(lifetime - 只有期间参数)
https://developers.facebook.com/docs/graph-api/reference/video/video_insights/
然而,我在 SO 上看到另一个 post 回答这个问题,但由于某些原因它对我不起作用
().
这是我成功的 API 调用,returns 生命周期统计数据符合预期:
/{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 post 的建议,我尝试了不同的周期参数:
/{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 应该是可接受的参数,就像 lifetime
最后,只是为了好玩,我想我会传递 "wrong" 参数 - 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
}
}
这表明所有这些值都很好(天、周、days_28, month, lifetime), 但它们不起作用。
我真的很困惑。我在 FB webpage/insights 上看到视频观看次数的每日细分,我认为应该可以通过 API.
做同样的事情
我做错了什么?
我在你 post 之后不久就遇到了同样的问题。我所有的测试和研究让我相信 Facebook 已经取消了检索除生命周期以外的任何内容的能力。在阅读了最近几个版本的所有更改日志后,我没有看到 Facebook 记录此更改的任何证据。这显然是非常令人失望的。
API 回复清楚地表明 "day" 应该是有效期限,这让我相信它被仓促删除了。
遗憾的是,我没有看到可靠的解决方法。通过每 24 小时检索一次 lifetime 并计算两者之间的差异,可以实现 daily 的近似值。这只是一个近似值,因为给定时间段内可能存在数据协调问题。
很遗憾这个问题没有得到任何关注,因为它是 Facebook Video Insights 的核心 API。
这是我的解决方案(在 运行 通过 FB 支持后)
基本上,
1) 我得到所有 post 的列表:
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) 然后,我遍历它们中的每一个(用视频过滤那些)并检索 post[=27= 的数据] 其中包含此视频而不是 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
这对我有用
我有一点处理 Facebook Graph 的经验API。我需要获取视频的每日观看次数,而不是终生观看次数。
FB API 文档没有显示这是一个选项(lifetime - 只有期间参数) https://developers.facebook.com/docs/graph-api/reference/video/video_insights/
然而,我在 SO 上看到另一个 post 回答这个问题,但由于某些原因它对我不起作用
(
这是我成功的 API 调用,returns 生命周期统计数据符合预期:
/{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 post 的建议,我尝试了不同的周期参数:
/{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 应该是可接受的参数,就像 lifetime
最后,只是为了好玩,我想我会传递 "wrong" 参数 - 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
}
}
这表明所有这些值都很好(天、周、days_28, month, lifetime), 但它们不起作用。
我真的很困惑。我在 FB webpage/insights 上看到视频观看次数的每日细分,我认为应该可以通过 API.
做同样的事情我做错了什么?
我在你 post 之后不久就遇到了同样的问题。我所有的测试和研究让我相信 Facebook 已经取消了检索除生命周期以外的任何内容的能力。在阅读了最近几个版本的所有更改日志后,我没有看到 Facebook 记录此更改的任何证据。这显然是非常令人失望的。
API 回复清楚地表明 "day" 应该是有效期限,这让我相信它被仓促删除了。
遗憾的是,我没有看到可靠的解决方法。通过每 24 小时检索一次 lifetime 并计算两者之间的差异,可以实现 daily 的近似值。这只是一个近似值,因为给定时间段内可能存在数据协调问题。
很遗憾这个问题没有得到任何关注,因为它是 Facebook Video Insights 的核心 API。
这是我的解决方案(在 运行 通过 FB 支持后)
基本上,
1) 我得到所有 post 的列表:
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) 然后,我遍历它们中的每一个(用视频过滤那些)并检索 post[=27= 的数据] 其中包含此视频而不是 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
这对我有用