如何通过 Facebook PHP SDK 获取应用访问令牌?

我正在尝试检索我的应用的应用访问令牌以发布通知,但由于某种原因,它不起作用。代码如下:

$AppParams = array(
    'client_id'     => 'myclientid',
    '&client_secret' => 'myclientsecret',
    '&grant_type'    =>'client_credentials'
    );
$AppToken = $facebook->api('oauth/access_token?', 'GET', $AppParams);

我还用完整的oauth/accesstoken链接替换了第一部分,但随后它返回了我有关oauth及其Facebook页面的一般信息,我不想要这些信息。我在C#中做了几乎同样的事情,在那里它的工作原理。


答案 1

您实际上不必请求应用程序访问令牌。您可以自己简单地组装一个。

应用程序访问令牌的格式如下所示:

app_id|app_secret

这是应用程序的 ID、管道字符和应用程序机密。|

确保用户无法访问此应用令牌!仅在服务器端使用和引用它 - 永远不要将其传递给客户端。有关详细信息,请查看相关文档中的最后几句话。


答案 2

使用 SDK 版本 5,您可以使用 FacebookApp 实例的方法获取访问令牌。如果你有一个Facebook实例(像往常一样),你可以这样得到它:accessToken()

$fb->getApp()->getAccessToken()

当我想使用我自己的应用的访问令牌时,我会像这样实例化 API。我不知道是否有更清洁的方法。

$fb = new \Facebook\Facebook([
    'default_graph_version' => 'v2.8',
]);
$fb->setDefaultAccessToken($fb->getApp()->getAccessToken());

推荐