Poste auf Facebook via Cron

Ich habe zwei Tage lang versucht, Nachrichten, die bei einer Twitter-Suche gesammelt wurden, automatisch auf einer meiner Facebook-Seiten zu veröffentlichen - d. H. Über einen Cronjob.

Der Twitter-Teil ist gut gelaufen, aber für mein ganzes Leben kann ich den Facebook-Teil nicht zum Laufen bringen.

Das Problem ist, dass mein Skript funktioniert ... bis es nicht funktioniert, ist das access_token normalerweise nach ein paar Stunden abgelaufen.

Jetzt habe ich diese Nachricht:#200) Posts where the actor is a page cannot also include a target_id.

Ich habe viele Vorschläge für verschiedene SO-Threads ausprobiert. Das Problem ist, dass sich die Facebook-API anscheinend ziemlich oft ändert und das, was früher funktionierte, nicht.

Jede Idee und jeder Vorschlag, wie es zuverlässig funktioniert, ist willkommen.

Hier ist der Code, den ich bisher habe. Ich habe eine Facebook-App erstellt und mithilfe von ein Zugriffstoken generiertFB Graph Explorer und eine Anfrage an '/ 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);
}

AKTUALISIEREN Code ist hier sichtbarhttp://phpbin.net/ZMNt3MPt

Antworten auf die Frage(2)

Ihre Antwort auf die Frage