以下Facebook网址:
https://developers.facebook.com/tools/accesstoken/
显示来自Facebook用户创建的应用程序的所有用户令牌。
我现在可以手动检索我的Facebook 用户访问令牌(source):
使用标准OAuth 2.0实施,第一步是调用服务提供商(facebook)的 OAuth对话 -
\GET http://www.facebook.com/dialog/oauth
参数 -
client_id
(APP ID)redirect_uri
(应用重定向网址)scope
(权限 - 可选)
返回 -
code
(附加重定向网址)
用户成功验证了应用后,服务提供商(facebook)返回code
并附加了redirect_url
。所以你将被重定向到 -
{redirect-url}?code=XXXXXXXXXXXXXXXXX
然后我们使用此code
并请求 access_token
-
\GET https://graph.facebook.com/oauth/access_token
参数 -
client_id
(APP ID)client_secret
(APP秘密)code
redirect_uri
这很好用,但正如您所看到的那样,需要手动步骤才能从重定向的URL中检索代码并将其添加到返回用户访问令牌的第二个URL中。但是,我不知道如何自动执行此过程,即,给定用户 App ID 和 App Secret ,检索我的用户访问令牌没有手动步骤。
有没有办法用PHP脚本检索用户访问令牌?
以下是我尝试使用PHP SDK实现此目的:
require_once __DIR__ . '/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '<my app id>',
'app_secret' => '<my app secret>',
]);
$helper = $fb->getRedirectLoginHelper();
$accessToken = $helper->getAccessToken();
然而 $ accessToken 返回NULL。
可能还有其他方法可以使用Facebook PHP SDK吗?
答案 0 :(得分:3)
无法自动获取用户令牌或自动执行用户授权。这将使整个用户授权毫无意义,并且没有严重的用例。获取用户令牌的唯一方法是手动授权用户(通过构建手动登录流程或使用其中一个SDK)。