如何通过Facebook PHP SDK获取App Access Token?

Boe*_*hmi 16 php facebook facebook-graph-api facebook-php-sdk facebook-access-token

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

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

我还用完整的oauth/accesstoken链接替换了第一部分,但随后它返回了关于oauth及其facebook页面的一般信息,这是我不想要的.我在C#中做了几乎相同的事情并且在那里工作.

Lix*_*Lix 35

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

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

app_id|app_secret
Run Code Online (Sandbox Code Playgroud)

这是应用程序的id,管道角色|和应用程序秘密.

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


tre*_*mby 8

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

$fb->getApp()->getAccessToken()
Run Code Online (Sandbox Code Playgroud)

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

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