如何将视频后端上传到Facebook,但按计划发布

问题描述

我有一个PHP控制台脚本,该脚本将视频文件上传到我的Facebook页面。这工作正常(下面的代码)。但是,完成后,该视频将立即公开发布。我想在某个日期时间发布视频。 我找不到适合的文档。它可以在任何地方使用吗? 或者,如果我可以上传仅对我可用的视频,然后“将其公开”,那也将适合我。

<?PHP
$fb = new Facebook\Facebook([
    'app_id' => '{APPID}','app_secret' => '{APPSECRET}','default_graph_version' => 'v2.10',]);
$accesstoken = '{PERMANENTTOKEN}';



try {
    $videoTitle = 'FOO';
    $videoDescription = 'BAR';
    $data = [
      'title' => $videoTitle,'description' => $videoDescription,];
    $basePath = '/path/to/';
    $fileEntry='file.mp4';
  $response = $fb->uploadVideo('{PAGEID}',$basePath.$fileEntry,$data,$accesstoken);
} catch(Facebook\Exception\ResponseException $e) {
  // When Graph returns an error
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exception\SDKException $e) {
  // When validation fails or other local issues
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}

echo 'Video ID: ' . $response['video_id'];  //this is Now publicly available. how can i make it publish at a later date?

解决方法

我认为带有scheduled_publish_time参数的published可能有用。

$videoTitle = 'FOO';
$videoDescription = 'BAR';
$data = [
  'title' => $videoTitle,'description' => $videoDescription,'scheduled_publish_time' => strtotime('+7 days'),'published' => false,];

$basePath = '/path/to/';
$fileEntry='file.mp4';
$response = $fb->uploadVideo('{PAGEID}',$basePath.$fileEntry,$data,$accessToken);

scheduled_publish_time该帖子上线的时间,可以是API调用开始后十分钟到六个月之间的任何日期。

scheduled_publish_time的可能格式:

  • 整数UNIX时间戳[以秒为单位](例如1530432000)。
  • ISO 8061时间戳字符串(例如2018-09-01T10:15:30 + 01:00)。
  • PHP的strtotime()可以解析的任何字符串(例如,明天+2周)。

对于日期,我不确定应该使用哪个时区,因此可能需要进行一些实验。

链接:

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...