こんにちは、私は facebook php sdk を使用してファンページに投稿しています。これらの投稿を将来にスケジュールしようとしています。私はいくつかの問題に遭遇しています。これが私のコードです
<?php
// This code is just a snippet of the example.php script
// from the PHP-SDK <https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php>
require_once('facebookphp/src/facebook.php');
$app_id = "xxxxx";
$app_secret = "xxxxxx";
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'fileUpload' => true,
));
// Get User ID
$user = $facebook->getUser();
var_dump($user);
if ($user) {
try {
$page_id = 'xxxx';
$album_id = 'xxxxx';
$page_info = $facebook->api("/$page_id?fields=access_token");
if( !empty($page_info['access_token']) ) {
$args = array(
'access_token' => $page_info['access_token'],
'scheduled_publish_time' => "1361642425", #an example timestamp
'message' => "test post",
'source' => "@" . "/path/to/photo.jpg",
'published' => "0",
);
$post_id = $facebook->api("/$album_id/photos","post",$args);
#echo $post_id;
} else {
$permissions = $facebook->api("/me/permissions");
if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
!array_key_exists('manage_pages', $permissions['data'][0])) {
// We don't have one of the permissions
// Alert the admin or ask for the permission!
header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
}
}
} catch (FacebookApiException $e) {
var_dump($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
echo '<a href="'.$logoutUrl.'">logout</a>';
} else {
$loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream'));
echo '<a href="'.$loginUrl.'">login</a>';
}
// ... rest of your code
?>
このコードは、スケジュールされた時間が過ぎたときに写真が公開されないことを除いて、完全に将来にスケジュールされた私の Facebook ページに写真を投稿します。アクティビティ ログでは、写真は「スケジュールされた投稿」セクションに残り、「申し訳ありませんが、このスケジュールされた投稿の公開中に問題が発生しました」というエラーが表示されます。
私はこれがパラメータのせいだと思った: 'published' => "0",
このパラメーターを削除するか 1 に設定すると、投稿はまったく行われず、「公開された投稿でスケジュールされた公開時刻を指定できません」というエラーが表示されます。