0

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

使用应用程序访问密钥,我只能访问用户的公共帖子。使用用户访问令牌,我还可以访问私人帖子

但用户访问令牌过期

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

我正在为 facebook api 使用 php

4

2 回答 2

1

不,这是不可能的,它甚至在官方删除 offline_access 权限帖子中明确表示:

用户必须先访问您的应用程序,然后您才能获得有效的“授权码”才能再次进行服务器端 OAuth 调用。应用程序将无法设置尝试自动延长过期时间的后台/cron 作业,因为“授权码”是短暂的并且已经过期。

话虽如此,当您从服务器端身份验证流程中获取访问令牌时,您获得的令牌应该持续一个月,如果您将其持久化,那么您可以在该月使用它。

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

于 2012-04-11T08:11:31.127 回答
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);

with$page_id是粉丝专页的 id 或

$post_id = $facebook->api("/me/feed","post",$args);
于 2012-09-18T04:47:06.093 回答