私はtwitter検索から収集したメッセージを自分のFacebookページに自動的に投稿しようとしていました。つまり、cronジョブを介してです。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