我一直试图用两天的时间将从Twitter搜索收集到的消息自动发布到我的Facebook页面之一 - 即通过cronjob。通过cron发布到facebook
Twitter部分进展良好,但对于我的生活,我无法让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);
}
UPDATE 代码可见这里http://phpbin.net/ZMNt3MPt
谢谢。我如何使用这个令牌?我尝试使用$ token与消息正文令牌密钥,但然后我得到'用户没有授权应用程序执行此操作。迷失,我是。我已经在这里发布了我的整个代码,因此您有一个概述。 http://phpbin.net/fTVJgkrF – pixeline
我怀疑你在等待令牌过期,然后*然后*交换它。首先得到令牌后立即进行交换。 请参阅https://developers.facebook.com/docs/facebook-login/access-tokens/获取有关令牌和调试的信息。 –
Hello + lePunk:您是否有机会查看我发布的代码?在这一点上,我有点渴望得到一个可行的答案。 – pixeline