如何将视频后端上传到 Facebook,但有预定的发布

How to backend-upload a video to Facebook, but with scheduled publish

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

<?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?

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

$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 Time when this post should go live, this can be any date between ten minutes and six months from the time of the API call.

scheduled_publish_time 的可能格式:

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

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

链接: