通过API检索Facebook广告上的评论

时间:2014-02-21 13:43:10

标签: facebook facebook-graph-api facebook-ads-api

甚至可以通过API(图表或FQL)检索Facebook广告上的评论吗?如果是,我是否需要列入白名单的应用程序?另外,如果我有页面访问令牌,是否足够,或者我需要具有ads_management权限的用户访问令牌?

3 个答案:

答案 0 :(得分:1)

关于令牌使用,给定用户将page_token扩展到给定的应用程序。 page_token最多具有与其授权页面和ad_accounts上的用户相同的权限。

如果您已拥有user_token manage_pages权限,则可以代表用户自动生成page_token。同样,此page_token最多具有与您用于生成它的user_token相同的权限。

换句话说,拥有page_token并不等于user_token中已存在的任何其他权限。

话虽如此,你需要

  1. 有权访问给定ad_account的令牌
  2. 生成该令牌的应用在其设置中激活了该ad_account
  3. 如果未达到第二个要求,例如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

    因此,如果您为已列出此ad_account的应用扩展了ads_read令牌,并且您知道ad_id,则可以按我在帖子Get comments from facebook ads (marketing)中解释的那样进行处理/ p>

    基本上,您使用ad_id(例如123000000)来获取提升的帖子ID及其操作

    /123000000?fields=creative.fields(effective_object_story_id),insights.fields(动作)

    答案将包含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"
          }
        }
      }
    }
    

    如果您还要将付费评论与常规评论区分开来,可以查询post_id comments的{​​{1}}边缘,以获得应该大于广告生成的评论的整体评论数量

答案 1 :(得分:0)

您无法通过 API 提取评论的实际文字 - 会使其太容易抓取。

答案 2 :(得分:-1)

是的,拥有评论的Facebook广告是因为广告是宣传的网页帖子,无论该网页帖子是否隐藏。网页发布评论可通过Facebook API获得,无需访问Ads API。使用图形API端点/v2.1/{page-id}/comments来检索页面发布评论。有关详细信息,请参阅Facebook Graph API documentation on object comments