我正在尝试检索我的应用的应用访问令牌以发布通知,但由于某种原因,它不起作用。这是代码:
$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#中做了几乎相同的事情并且在那里工作。
答案 0 :(得分:35)
您实际上不必请求应用程序访问令牌。你可以自己组装一个。
应用程序访问令牌的格式如下:
app_id|app_secret
这是应用程序的id,管道符|
和应用程序密码。
确保您的用户无法访问此应用令牌!仅在服务器端使用和引用它 - 永远不会将其传递给客户端。有关详细信息,请查看相关documentation中的最后几句话。
答案 1 :(得分:7)
使用SDK的第5版,您可以使用FacebookApp
实例的accessToken()
方法获取访问令牌。如果您有一个Facebook
实例(正常情况下),您可以这样做:
$fb->getApp()->getAccessToken()
当我想使用自己应用程序的访问令牌时,我会像这样实例化API。我不知道是否有更清洁的方式。
$fb = new \Facebook\Facebook([
'default_graph_version' => 'v2.8',
]);
$fb->setDefaultAccessToken($fb->getApp()->getAccessToken());
答案 2 :(得分:1)
替换 -
'&client_secret' => 'client_secret'
'&grant_type' => 'grant_type'