pix*_*ine 7 php facebook facebook-php-sdk
我已经尝试了两天,将从Twitter搜索收集的消息自动发布到我的一个Facebook页面 - 即通过cronjob.
推特部分很好,但对于我的生活,我无法让Facebook部分工作.
问题是我的脚本工作......直到它没有,通常access_token几个小时后就会过期.
现在我有这样的信息:
#200) Posts where the actor is a page cannot also include a target_id
.
我在各种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);
}
Run Code Online (Sandbox Code Playgroud)
更新 代码在http://phpbin.net/ZMNt3MPt可见
leP*_*unk 10
访问令牌过期我遇到了类似的问题.事实证明,您可以将您的令牌兑换为"长寿"令牌
管理我的代码:
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 = '';
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1817 次 |
最近记录: |