【发布时间】:2021-01-16 04:29:54
【问题描述】:
是否可以通过 API(Graph 或 FQL)检索 Facebook 广告上的 cmets?如果是,我是否需要一个列入白名单的应用程序才能做到这一点?另外,如果我有页面访问令牌,是否足够,或者我需要具有 ads_management 权限的用户访问令牌?
【问题讨论】:
标签: facebook facebook-graph-api facebook-ads-api
是否可以通过 API(Graph 或 FQL)检索 Facebook 广告上的 cmets?如果是,我是否需要一个列入白名单的应用程序才能做到这一点?另外,如果我有页面访问令牌,是否足够,或者我需要具有 ads_management 权限的用户访问令牌?
【问题讨论】:
标签: facebook facebook-graph-api facebook-ads-api
关于令牌的使用,page_token 由给定用户扩展到给定应用程序。 page_token 最多与用户在其授权页面和 ad_accounts 上具有相同的权限。
如果您已经拥有user_token 和manage_pages 权限,则可以代表用户自动生成page_token。同样,此page_token 最多具有与您用于生成它的user_token 相同的权限。
换句话说,拥有page_token 并不会获得比user_token 中已经存在的特权更多的特权。
话虽如此,你需要
如果不满足第二个条件,例如ad_account act_123456789,您将收到错误消息:
{
"error": {
"message": "(#274) The ad account is not enabled for usage in Ads API. Please add it in developers.facebook.com/apps -> select your app -> settings -> advanced -> advertising accounts -> Ads API. Account 123456789 not enabled for this application.",
"type": "OAuthException",
"code": 274,
"fbtrace_id": "xxxxx"
}
}
例如,您可以尝试为Graph API Explorer App 生成具有所有权限的令牌。它会抛出上面的错误,因为所说的应用程序没有启用ad_account act_123456789。
因此,假设您有一个带有 ads_read 扩展的令牌,用于列出此 ad_account 的应用程序,并且您知道 ad_id,您可以按照我在线程 Get comments from facebook ads (marketing) 中的说明进行操作
基本上,您使用 ad_id(例如 123000000)来获取提升的帖子 ID 及其操作
/123000000?fields=creative.fields(effective_object_story_id),insights.fields(actions)
答案将包含一个effective_object_story_id(例如,假设它是456000000_789000000)及其按类型细分的操作:
{
"creative": {
"effective_object_story_id": "456000000_789000000",
"id": "123000000"
},
"insights": {
"data": [
{
"actions": [
{
"action_type": "comment",
"value": "12"
},
{
"action_type": "like",
"value": "2"
},
{
"action_type": "post",
"value": "3"
},
{
"action_type": "post_reaction",
"value": "29"
},
{
"action_type": "video_view",
"value": "558"
},
{
"action_type": "page_engagement",
"value": "604"
},
{
"action_type": "post_engagement",
"value": "602"
}
],
"date_start": "2017-08-14",
"date_stop": "2017-08-20"
}
],
"paging": {
"cursors": {
"before": "xxx",
"after": "xxx"
}
}
}
}
如果您还想区分付费 cmets 和普通 cmets,可以查询 post_id 456000000_789000000 的 comments 边缘以获取总评论数,该总评论数应大于广告生成的 cmets。
【讨论】:
您无法通过 API 提取评论的实际字词 - 这太容易被抓取。
【讨论】:
是的,具有 cmets 的 Facebook 广告是因为该广告是推广页面帖子,无论该页面帖子是否隐藏。页面帖子 cmets 可通过 Facebook API 获得,并且不需要访问 Ads API。使用图形 API 端点 /v2.1/{page-id}/cmets 检索页面发布 cmets。请参阅Facebook Graph API documentation on object comments 了解更多信息。
【讨论】: