Загрузка видео в старый API REST Facebook

У меня много проблем с загрузкой видео.

Если я пытаюсь использовать https://api-video.facebook.com, я получаю ошибку cURL host not found, если я использую http://api-video.facebook.com, я получаю сообщение для использования https://api-video.facebook.com

Если я пытаюсь использовать https://api.facebook.com/restserver.php?method=video.upload, я получаю код ошибки 101 -

<error_msg>Invalid API key</error_msg>

но ключ API работает для всего остального, статуса, комментариев, нравится, fql для пользователя?

Вот что я посылаю:

access_token=XXXX
api_key=XXXX
call_id=1279204007.6003
description=Description+of+this%3F
format=JSON
title=Title%2C+a+title
v=2.0
sig=XXX

Я прочитал в сообщении на форуме форум разработчиков FB, разделяющий ключ сеанса на | дает правильный ключ сеанса? Это то же самое, что access_token? Я пробовал раскалывать это без везения.

Любые идеи или даже рабочий код в PHP (!) были бы наиболее желанными! Благодаря

Ответ 1

Попробуйте использовать этот код с помощью FB SDK

require_once 'facebook.php';

$appapikey = 'xxx';
$appsecret = 'xxx';
$facebook = new Facebook($appapikey, $appsecret);

$session_key = 'xxx'; //this is the infinite session_key returned when asking for the offline_access extended permission

    $args = array(
          'method' => 'facebook.video.upload',
          'v' => '1.0',
          'api_key' => $appapikey,
          'call_id' => microtime(true),
          'format' => 'JSON',
          'session_key' => $session_key,
          'title'       => 'My video title',
          'description' => 'My video description'
    );

      ksort($args);
      $sig = '';
      foreach($args as $k => $v) {
        $sig .= $k . '=' . $v;
      }
      $sig .= $appsecret;
      $args['sig'] = md5($sig);

    $args["short.wmv"] = '@E:\path\to\short.wmv';

    $ch = curl_init();
    $url = 'http://api-video.facebook.com/restserver.php?method=facebook.video.upload';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $args);

    $data = curl_exec($ch);

    print_r($data); //returned xml here

Я также нашел отчет об ошибках, представленный сегодня, в котором говорится, что загрузка видео работала и не работала споратно. Это может быть ваш код просто отлично, и API-интерфейсы facebook запутываются.

EDIT:

Попробуйте следующее, похоже, это сработало для нескольких человек.