php – 通过cron发布到facebook
发布时间:2020-12-13 18:12:06 所属栏目:PHP教程 来源:网络整理
导读:我已经尝试了两天,将从Twitter搜索收集的邮件自动发布到我的一个Facebook页面 – 即通过cronjob. 推特部分很好,但对于我的生活,我无法让Facebook部分工作. 问题是我的脚本工作……直到它没有,通常access_token在几个小时后过期. 现在我有这样的信息: #200)
我已经尝试了两天,将从Twitter搜索收集的邮件自动发布到我的一个Facebook页面 – 即通过cronjob.
推特部分很好,但对于我的生活,我无法让Facebook部分工作. 问题是我的脚本工作……直到它没有,通常access_token在几个小时后过期. 现在我有这样的信息: 我在各种SO线程上尝试了许多建议.问题是:Facebook API似乎经常发生变化,而以前的工作方式却没有. 关于如何使其可靠地工作的任何想法和建议都是受欢迎的. 这是我到目前为止的代码.我创建了一个Facebook应用程序,并使用FB Graph Explorer和’/ me / account’请求生成了一个访问令牌. require('config.inc.php'); require('_classes/facebook-php-sdk/src/facebook.php'); // Connect to facebook $facebook = new Facebook(array( 'appId' => FB_APP_ID,'secret' => FB_APP_SECRET,)); // get the message $msg_body = array( 'message' => $message->message."n".'(via http://twitter.com/'.$message->author.')','access_token' => FB_ACCESS_TOKEN ); // Post to Facebook $fb_result=0; try { $postResult = $facebook->api('/'.PAGEID.'/feed','post',$msg_body ); } catch (FacebookApiException $e) { echo $e->getMessage(); } if($postResult) { $fb_result=1; $last_posted_tweet_id = $message->id; file_put_contents(FOLDER.LAST_TWEET_ID_FILE,$last_posted_tweet_id); echo 'Your message '.$message->id.' is posted on your facebook wall.'; //print_r($msg_body); } UPDATE
我遇到了与访问令牌过期类似的问题.事实证明,您可以将您的令牌换成“长寿”令牌
管理我的代码: try{ $token = $facebook->getAccessToken(); // get "long-lived" access token $curl = new Curl(); $curl->setSsl(); $exchange_url = "https://graph.facebook.com/oauth/access_token?client_id=".$facebook_app_id."&client_secret=".$facebook_app_secret."&grant_type=fb_exchange_token&fb_exchange_token=".$token; $page = $curl->get($exchange_url); if ($page){ $page = explode("access_token=",$page); if (count($page) > 1){ $page = explode("&",$page[1]); $token = $page[0]; $facebook->setAccessToken($token); } } } catch(Exception $e){ $token = ''; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |