【问题标题】:facebook access_token clarificationfacebook access_token 澄清
【发布时间】:2013-04-16 19:14:22
【问题描述】:

我有一个 Facebook 应用程序,它应该向其用户发送一些通知。这将由 cron 完成,我找到了两种方法来获取执行此操作所需的 access_token:

1.

$app_token = file_get_contents("https://graph.facebook.com/oauth/access_token?" .
    "client_id=" . appid .
    "&client_secret=" . secret .
    "&grant_type=client_credentials");

2.

$fb = new Facebook(array('appId' => appid, 'secret' => secret, 'cookie' => true));
$app_token = $fb->getAccessToken(),

我可以理解有两种不同的方法可以获取access_token,但是为什么我会从这两种方法中得到不同的值? [据我所知,两者的工作方式相同]

我想知道有什么区别以及获得access_token 的最佳方法是什么。

【问题讨论】:

  • 我猜你每次发出请求都会得到不同的令牌,对吧?上述两种方式会触发两个不同的调用,因此它会返回不同的令牌。我可能错了,但这是我的看法。

标签: facebook facebook-graph-api facebook-php-sdk


【解决方案1】:

在 oauth 端点触发将始终为您提供长期令牌,这与短期令牌不同。

【讨论】:

    【解决方案2】:

    我认为第二种选择很好。因为将来 Facebook 可能会更改 URL 以获取访问令牌。但在第二个选项中,您使用的是 oAuth,它更安全。您可能需要更改您使用的 SDK。而已。

    【讨论】:

      【解决方案3】:

      主要不同的是,第二个不需要http请求来获取应用程序访问令牌,只需将客户端ID和客户端密码用'|'连接在一起。

      例如 client_id 'abc' 和 client_secret 'def',那么当您调用 https://graph.facebook.com/app?access_token=abc|def 时,'abc|def' 就可以使用了

      【讨论】:

        猜你喜欢
        • 2018-03-22
        • 2013-05-27
        • 2016-07-17
        • 2019-11-15
        • 2013-06-05
        • 2013-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多