Facebook - 通过Cronjob获取用户访问令牌

时间:2012-04-11 08:03:04

标签: php facebook facebook-graph-api

是否可以通过cronjob为用户获取有效的访问令牌? 我想创建一个应用程序,每晚解析用户的所有帖子,并检查是否有一些特殊的字符。

使用应用访问密钥我只能访问来自用户的公开帖子..使用用户访问令牌我也可以访问私人帖子

但用户访问令牌过期

是否可以使用cronjob刷新用户令牌?这意味着cronjob可能必须刷新100个用户访问权限,我没有用户du打开授权对话框,因为它通过cronjob在服务器上调用

我正在使用php for facebook api

2 个答案:

答案 0 :(得分:1)

不,这是不可能的,甚至在官方Removal of offline_access Permission帖子中明确说明:

  

用户必须先访问您的应用程序才能获得   有效的“授权代码”,以便能够使服务器端OAuth   重拨。应用无法设置后台/ cron作业   尝试自动延长到期时间,因为   “授权代码”是短暂的,并且已经过期。

话虽如此,当你从Server-Side authentication流程中获得访问令牌时,你获得的令牌应该持续一个月,如果你坚持它,那么你可以在那个月使用它。

在该月结束后,如果用户未重新使用您的应用,则访问令牌将过期,您将不得不传递该用户。

答案 1 :(得分:1)

如果你使用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);