我制作了这个 PHP 脚本,它可以获取定期发布到我管理的 Facebook 页面的消息。
我的脚本运行良好,但取决于我作为登录 Facebook 的用户。我希望这个脚本作为 cron 作业运行,所以我担心如果我退出,脚本将无法工作。
即使我没有登录 Facebook,如何让它工作?
请注意,我根据要求创建了一个 Facebook 应用程序,以便能够使用 Facebook api。有没有办法发布为 Facebook 应用程序?
这是我的代码,以防万一。
require_once('config.inc.php');
require '_classes/facebook-php-sdk/src/facebook.php';
$homeurl = 'http://domain.com/to-facebook/index.php';
$post_url = '/'.PAGEID.'/feed';
// The message
$msg_body = array(
'message' => 'hello world',
);
// Post to Facebook
$facebook = new Facebook(array(
'appId' => FB_APP_ID,
'secret' => FB_APP_SECRET,
));
// Get User ID
$fbuser = $facebook->getUser();
if ($fbuser) {
try {
$postResult = $facebook->api($post_url, 'post', $msg_body );
} catch (FacebookApiException $e) {
echo $e->getMessage();
}
}else{
// I would like never to come to this point...
$loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>'publish_stream,manage_pages,publish_actions,status_update,offline_access'));
header('Location: ' . $loginUrl);
}
if($postResult)
{
echo '<h1>Your message is posted on your facebook wall.</h1>';
}
*更新* 我尝试了cronjob,不幸的是,过了一会儿我收到了“验证访问令牌时出错:会话在unix时间过期”消息。我很困惑。我究竟做错了什么?