使用Facebook PHP SDK v3(see on github),它非常简单。要记录具有offline_access
权限的用户,请在生成登录URL时提问。这是你如何做到的。
下载离线访问令牌
首先,你检查,如果用户登录或不:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
// The access token we have is not valid
$user = null;
}
}
如果他不是,你产生了“使用Facebook登入” URL请求的offline_access
许可:
if (!$user) {
$args['scope'] = 'offline_access';
$loginUrl = $facebook->getLoginUrl($args);
}
,然后显示在你的模板的链接:
<?php if (!$user): ?>
<a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>
然后,您可以检索脱机访问令牌并将其存储。为了得到它,请致电:
$facebook->getAccessToken()
使用离线访问令牌
要使用离线访问令牌时未登录的用户:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$facebook->setAccessToken("...");
现在你可以进行API调用对于此用户:
$user_profile = $facebook->api('/me');
希望有所帮助!
mhhh ...似乎你只需要使用$ facebook-> setAccessToken()来设置access_token,就是这样... – Martin 2011-05-25 11:46:37