是否可以通过 cronjob 获取用户的有效访问令牌?我想创建一个应用程序,每天晚上解析用户的所有帖子,并检查是否有一些特殊的字符。
使用应用程序访问密钥,我只能访问来自用户的公共帖子..使用用户访问令牌,我还可以访问私人帖子
但用户访问令牌已过期
是否可以使用 cronjob 刷新用户令牌? 这意味着 cronjob可能必须刷新 100 个用户访问令牌,我没有让用户 du 打开授权对话框,因为它通过 cronjob 在服务器上调用
我正在使用php作为facebook api。
不,这是不可能的,它甚至在官方删除offline_access权限帖子中明确说:
用户必须先访问你的应用程序,然后你才能获得 有效的"授权代码",能够使服务器端OAuth 再次呼叫。应用将无法设置后台/cron 作业 尝试自动延长过期时间,因为 "授权代码"是短暂的,将过期。
话虽如此,当您从服务器端身份验证流获取访问令牌时,您获得的令牌应该持续一个月,如果您保留它,则可以在该月使用它。
该月结束后,如果用户尚未重新使用你的应用,则访问令牌将过期,你必须传递该用户。
如果你使用facebook jdk,你可以使用:$token = $facebook->getAccessToken();
然后,将$token
保存到数据库中以供 cronjob 使用
$args = array(
'access_token' => $page_info['access_token'], //Offline Access Token From Database
'message' => $_POST['description'],
'link' =>$_POST['link'],
'picture' =>$_POST['image'],
'name' =>$_POST['title']
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
$page_id
是粉丝页面的 ID 或
$post_id = $facebook->api("/me/feed","post",$args);