mar*_*yyy 9 facebook facebook-graph-api facebook-php-sdk
使用旧的(2.x)SDK我用它来记录某人的offline_access:
$session = array
(
'uid' => $userdata['fb_uid'],
'sig' => $userdata['fb_sig'],
'access_token' => $userdata['fb_access_token']
);
$facebook->setSession($session);
Run Code Online (Sandbox Code Playgroud)
在新的SDK中,此功能不再存在.我想我需要登录使用:
setPersistentData($ key,$ value)
但这个功能受到保护,我不知道'代码'是什么?我需要这个来登录用户吗?'sig'发生了什么?我不再需要这个吗?
希望有人已经想到这一点,因为文档真的无济于事!
Que*_*tin 21
使用Facebook PHP SDK v3(参见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;
}
}
Run Code Online (Sandbox Code Playgroud)
如果他不是,您生成"登录Facebook"URL请求offline_access权限:
if (!$user) {
$args['scope'] = 'offline_access';
$loginUrl = $facebook->getLoginUrl($args);
}
Run Code Online (Sandbox Code Playgroud)
然后在模板中显示链接:
<?php if (!$user): ?>
<a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>
Run Code Online (Sandbox Code Playgroud)
然后,您可以检索脱机访问令牌并将其存储.要获得它,请致电:
$facebook->getAccessToken()
Run Code Online (Sandbox Code Playgroud)
要在用户未登录时使用脱机访问令牌:
require "facebook.php";
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET,
));
$facebook->setAccessToken("...");
Run Code Online (Sandbox Code Playgroud)
现在,您可以为此用户进行API调用:
$user_profile = $facebook->api('/me');
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
9808 次 |
| 最近记录: |