2

我目前正在创建一个服务器 CLI 应用程序,通过营销 API 检索 facebook 广告指标,它将作为服务器上的长期运行服务定期执行,无需用户输入,但我似乎无法找到一种方法来获取这样做的令牌。

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

有什么方法可以仅通过应用程序 id/secret 获得营销 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);

但我收到错误消息“无法确定此请求的目标对象。当前支持的对象包括广告帐户、企业帐户和关联对象。”

4

2 回答 2

3

您可以访问Business Manager吗?您可以在那里生成一个带有未过期令牌的系统用户。见这里

于 2016-03-12T04:02:49.850 回答
2

使用 App ID 和 App Secret,您只能获得一个 App Access Token。与该用户没有任何关系,因此 Facebook 无法知道您是否被允许访问营销 API 或洞察:

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

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

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

有关令牌以及如何扩展它们的更多信息:

于 2016-02-09T14:40:45.300 回答