我正在构建一个将朋友数据导入本地数据库的应用程序,它运行良好。
我正在尝试创建一个由每日 cron 运行的脚本,该脚本将遍历本地数据库中的用户配置文件并更新朋友数据。
我正在使用 PHP SDK。
我已启用 depreacte_offline_access 标志。
这是否意味着访问令牌将在 60 天后自动过期,还是我需要做其他事情?
如果用户在同一个浏览器中退出应用程序或 Facebook,我还能从 cron 脚本中检索配置文件数据吗?
我是否正确地认为我需要做的就是通过以下方式检索访问令牌:
$access_token = $facebook->getAccessToken();
然后将其存储在数据库中,然后使用以下命令设置访问令牌:
$facebook->setAccessToken($new_access_token);
然后用
$facebook->getUser('/me');
?
另外如何查看访问令牌的到期日期?
下面是一个遍历和检索配置文件的脚本,但如果我在浏览器中运行它,它只适用于当前登录的用户,或者我得到异常“OAuthException:验证访问令牌时出错:会话无效,因为用户已注销。 "
<?php
require_once(THEME_INCLUDES_PATH . 'facebook.php');
$config = array();
$config['appId'] = APP_ID;
$config['secret'] = APP_SECRET;
$config['fileUpload'] = false; // optional
$facebook = new Facebook($config);
$sql = "SELECT `access_token` FROM `fb_user`";
$result = $db1->db_query($sql);
while($details = $db1->db_fetch_array($result)){
if($details['access_token']){
$facebook->setAccessToken($details['access_token']);
$fb_user = $facebook->getUser('/me');
if($fb_user){
try {
$fb_profile = $facebook->api('/me');
print_r( $fb_profile);
}
catch (FacebookApiException $e){
echo $e;
$fb_user = false;
}
}
}
}
?>