【问题标题】:Facebook Marketing API token without user input无需用户输入的 Facebook Marketing API 令牌
【发布时间】:2016-05-19 13:20:32
【问题描述】:

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

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

是否有任何方法可以仅通过应用 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);

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 您能否解释一下如何在那里生成一个带有未过期令牌的系统用户?或者,请在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,此答案可能会失效。
    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 对,我就是这么想的。但这根本不能解决我的问题......没有用户手动登录facebook,是否有任何方法可以获得访问令牌?
    • 好吧,我仍然可以使用无头浏览器来完成这项任务,或者要求客户每两个月重新生成一次 long liven 令牌,但这很荒谬,没有办法用 facebook API 来做到这一点。
    • 安全并不荒谬;) - 使用无头浏览器登录 facebook 只是为了避免授权声音......奇怪。并且很可能是不允许的。以适当的方式授权用户有什么问题?
    • 我真的不明白这是一个安全功能。我从 Google Analytics 和 Adword API 收集统计数据,并且可以使用存储在服务器上的私钥及其 API 获取令牌。
    • 它与图形 api 的工作方式相同。如果没有用户登录,您也无法访问谷歌分析或 adwords api。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多