是否可以通过 cronjob 为用户获取有效的访问令牌?我想创建一个应用程序,每天晚上解析用户的所有帖子并检查是否有一些特殊字符。
使用应用程序访问密钥,我只能访问用户的公共帖子。使用用户访问令牌,我还可以访问私人帖子
但用户访问令牌过期
是否可以使用 cronjob 刷新用户令牌?这意味着 cronjob 可能必须刷新 100 个用户访问令牌,并且我没有让用户 du 打开授权对话框,因为它通过 cronjob 在服务器上调用
我正在为 facebook api 使用 php
是否可以通过 cronjob 为用户获取有效的访问令牌?我想创建一个应用程序,每天晚上解析用户的所有帖子并检查是否有一些特殊字符。
使用应用程序访问密钥,我只能访问用户的公共帖子。使用用户访问令牌,我还可以访问私人帖子
但用户访问令牌过期
是否可以使用 cronjob 刷新用户令牌?这意味着 cronjob 可能必须刷新 100 个用户访问令牌,并且我没有让用户 du 打开授权对话框,因为它通过 cronjob 在服务器上调用
我正在为 facebook api 使用 php
不,这是不可能的,它甚至在官方删除 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);
with$page_id
是粉丝专页的 id 或
$post_id = $facebook->api("/me/feed","post",$args);