Ho cercato per due giorni di postare automaticamente i messaggi raccolti da una ricerca su Twitter su una delle mie pagine di Facebook - cioè tramite un cronjob.Post to facebook via cron
La parte di Twitter è andata bene, ma per la vita di me non riesco a far funzionare la parte di Facebook.
Il problema è che il mio script funziona ... fino a quando non lo fa, in genere il token di accesso è scaduto dopo poche ore.
Ora ho questo messaggio: #200) Posts where the actor is a page cannot also include a target_id
.
Ho provato molte cose suggerite su vari thread SO. Il problema è: l'API di Facebook sembra cambiare molto spesso e quello che prima non funzionava.
Qualsiasi idea e suggerimento su come farlo funzionare in modo affidabile è il benvenuto.
Ecco il codice che ho finora. Ho creato un'app per Facebook e generato un token di accesso utilizzando lo FB Graph Explorer e una richiesta a "/ 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 codice è visibile qui http://phpbin.net/ZMNt3MPt
grazie. Come posso usare il token da quel momento in poi? Ho provato a utilizzare $ token con la chiave token body del messaggio, ma poi ho ottenuto "L'utente non ha autorizzato l'applicazione per eseguire questa azione". Perso, lo sono. Ho pubblicato il mio intero codice qui, quindi hai una panoramica. http://phpbin.net/fTVJgkrF – pixeline
Sospetto che tu stia aspettando la scadenza del token e * quindi * lo scambio. Fai lo scambio non appena ricevi un token in primo luogo. Vedere "Informazioni su token e debugging" all'indirizzo https://developers.facebook.com/docs/facebook-login/access-tokens/ –
Hello + lePunk: hai avuto la possibilità di guardare il codice che ho postato? Sono un po 'disperato per una risposta funzionante a questo punto. – pixeline