私は 2 日間、Twitter の検索から収集したメッセージを私の Facebook ページの 1 つに自動的に投稿しようと試みています。つまり、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);
}
更新 コードはここに表示されますhttp://phpbin.net/ZMNt3MPt