publish_future_post in functions.php (WordPress) führt kein Skript aus, das mit Facebook SDK 3 erstellt wurde

Lesezeit: 3 Minuten

Liebe WordPress Hacker und Liebhaber,

Ich werde wütend, wenn ich versuche, jedes Mal, wenn ein geplanter Beitrag mit dem Facebook SDK 3 (https://github.com/facebook/facebook-php-sdk).

Das Problem ist dass das Skript nicht mehr ausgeführt wird, wenn wp_cron eine Zeile in der functions.php ausführt, die das Objekt füllen muss Facebook bei Veröffentlichung mit der add_action(‘publish_future_post’, ‘future_post_being_published’, 10, 1);. Mit publish_post funktioniert das einwandfrei.

Das Skript wird nicht mehr ausgeführt, wenn Folgendes auftritt:

$facebook = new Facebook(array(
   'appId'  => '1xxxxxx1',
   'secret' => '28xxxxxxd91',
   'fileUpload' => true
  ));

Dieses Problem tritt nicht auf, wenn der Beitrag direkt aus dem Backoffice veröffentlicht wird, eigentlich die Funktion add_action(‘publish_post’, ‘future_post_being_published’, 10, 1); funktioniert perfekt.

Ich kann sagen, dass es aufhört, weil ich einige Zeilen zum Debuggen hinzugefügt habe, die mir eine E-Mail in verschiedenen Teilen des Codes senden, aber ich bekomme sie alle nur, wenn die veröffentlichen_post aktiviert ist, und nicht mit future_post_wird_veröffentlicht.

Hier das Skript:

function future_post_being_published($post_id)
{
$post = get_post($post_id);

wp_mail( '[email protected]', 'TEST1', 'TEST1' );

  error_reporting(E_ALL);
  ini_set('display_errors', '1');
include '../../../script/facebook-php-sdk-master/src/facebook.php';

wp_mail( '[email protected]', 'TEST2', 'TEST2' );

  $facebook = new Facebook(array(
   'appId'  => '1xxxx1',
   'secret' => '2xxxx1',
   'fileUpload' => true
  ));

wp_mail( '[email protected]', 'TEST3', 'TEST3' );


  #It can be found at https://developers.facebook.com/tools/access_token/
  #Change to your token.
  $access_token = 'CxxxxxxxxxD';
  $params = array('access_token' => $access_token);
  #The id of the fanpage
  $fanpage="3xxxxxxx9";
  #The id of the album
  $album_id ='4xxxxxxx37';

wp_mail( '[email protected]', 'TEST4', 'TEST4' );


  $accounts = $facebook->api('/INSERT_USER_FACEBOOK/accounts', 'GET', $params);

wp_mail( '[email protected]', 'TEST5', 'TEST5' );


  foreach($accounts['data'] as $account) {
     if( $account['id'] == $fanpage || $account['name'] == $fanpage ){
          $fanpage_token = $account['access_token'];
     }
  }

wp_mail( '[email protected]', 'TEST6', 'TEST6' );


 $img = "http://www.test.com/test.jpg";
 $titolo ="Title!";

 $ret_obj = $facebook->api('/me/photos', 'POST', array(
    'url' => $img,
    'message' => $titolo . ' | Test !!!',
              'no_story' => 0,
          'access_token' => $fanpage_token,
          'aid' => $album_id
));     




wp_mail( '[email protected]', 'TEST7', 'TEST7' );
}

add_action('publish_future_post', 'future_post_being_published', 10, 1);
add_action('publish_post', 'future_post_being_published', 10, 1);

Also, um es einfach zu machen:

  • Wenn es aufgerufen wird veröffentlichen_post dann wird das Bild in der Facebook-Seitenwand veröffentlicht und ich bekomme alle E-Mails (TEST1, TEST2, …, TEST7)
  • Als es aufgerufen wurde publish_future_post dann wird das Bild NICHT veröffentlicht und ich bekomme nur die E-Mails TEST1 und TEST2.
  • Meine Frage ist: warum das Skript das Bild nicht veröffentlicht, wenn es aufgerufen wird publish_future_post? Vielleicht kann es dem Objekt Facebook die Werte nicht zuweisen? Wie man es repariert?

    Danke sehr für die Aufmerksamkeit und für Ihre wertvolle Hilfe! Beste Simone

    • Höchstwahrscheinlich stoßen Sie nur auf eine nicht abgefangene Ausnahme, weil Ihr Benutzerzugriffstoken abgelaufen ist …

      – CBroe

      25. April 2014 um 0:37 Uhr

    • Hallo CBroe, nein, das Zugriffstoken ist nicht abgelaufen. Wie gesagt, wenn ich sofort veröffentliche, funktioniert es perfekt, während, wenn ich den Beitrag plane, nicht, also vielleicht der CRON ist, der das Objekt $facebook = new Facebook nicht erstellen kann. Es ist eine Möglichkeit, ich weiß es jetzt nicht.

      – Simone Freiberuflich

      25. April 2014 um 19:00 Uhr


    915610cookie-checkpublish_future_post in functions.php (WordPress) führt kein Skript aus, das mit Facebook SDK 3 erstellt wurde

    This website is using cookies to improve the user-friendliness. You agree by using the website further.

    Privacy policy