17

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

$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# 中做了几乎相同的事情并且它在那里工作。

4

3 回答 3

38

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

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

app_id|app_secret

那是应用程序的 id、管道字符|和应用程序密码。

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

于 2013-09-10T10:03:52.763 回答
8

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

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

当我想使用我自己的应用程序的访问令牌时,我正在像这样实例化 API。不知道有没有更干净的方法。

$fb = new \Facebook\Facebook([
    'default_graph_version' => 'v2.8',
]);
$fb->setDefaultAccessToken($fb->getApp()->getAccessToken());
于 2017-04-13T23:22:08.137 回答
1

代替 -

'&client_secret' => 'client_secret'

'&grant_type' => 'grant_type'
于 2013-09-10T10:17:31.170 回答