没有用户输入的Facebook Marketing API令牌

时间:2016-02-09 14:03:52

标签: php facebook facebook-graph-api facebook-access-token facebook-marketing-api

我目前正在创建一个服务器CLI应用程序,通过Marketing API检索facebook Ads指标,它将作为服务器上的长期运行服务在没有用户输入的情况下定期完成,但我似乎无法理解找到一种获得令牌的方法。

从Facebook PHP Api获取访问令牌的所有程序似乎都假设用户可以登录Facebook。我快速查看是否可以手动连接curl但是在facebook登录过程中有一些js生成的变量,这样会使事情变得复杂。

有没有办法只使用app id / secret获取Marketing API洞察力?或者是否可以在没有用户输入的情况下检索访问令牌?

我最接近的是:

Api::init(
          'appID', // App ID
          'APPSECRET',
          "appid|appstring"// APP token
        );
$campaign = new Campaign('campaignID');
$params = array(
  'date_preset' => InsightsPresets::LAST_7_DAYS,
);
$insights = $campaign->getInsights([], $params);
print_r($insights);

但是我收到错误"无法确定此请求的目标对象。目前支持的对象包括广告帐户,企业帐户和相关对象。"

2 个答案:

答案 0 :(得分:3)

您是否可以访问Business Manager?您可以在那里生成一个带有非过期令牌的系统用户。 See here

答案 1 :(得分:2)

使用App ID和App Secret,您只能获得App Access令牌。与任何用户没有任何关系,因此Facebook无法知道您是否被允许访问Marketing API或Insights:

  

要访问Marketing API,您需要具有的用户访问令牌   权限ads_management或ads_read

来源:https://developers.facebook.com/docs/marketing-api/quickstart#access-token

您可以使用和存储有效期为60天的扩展用户令牌。

有关令牌及其扩展方式的更多信息: