Как использовать oembed Facebook

Я пытаюсь встраивать сообщения Facebook (например, видео) в формате oEmbed. Согласно документации Facebook, oEmbed теперь поддерживается. Я пытаюсь этот код PHP:

$json_post = @file_get_contents('https://www.facebook.com/plugins/video/oembed.json/?url={MY VIDEO URL HERE}');
$oembed = json_decode($json_post);
var_dump($oembed);

Я уже использовал тот же код для Instagram с успехом, теперь я получаю нулевой результат. oEmbed работает хорошо, если я прямо пишу URL в браузере. Я что-то пропустил?
Благодарю.

Обновить

Я попробовал с Curl:

$url='https://www.facebook.com/plugins/video/oembed.json/?url=https%3A%2F%2Fwww.facebook.com%2Ffacebook%2Fvideos%2F10153231379946729%2F';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
//curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$page = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
print_r($page);
curl_close($ch);

Теперь я получаю:

HTTP / 1.1 302 найдено
Место нахождения: https://www.facebook.com/unsupportedbrowser
access-control-allow-method: ОПЦИИ
Access-Control-Expose-Headers: X-FB-Debug, X-Loader-Length
Access-Control-Allow-Origin: https://www.facebook.com
Варь: Происхождение
Access-Control-Allow-Credentials: правда
Тип контента: текст / HTML
X-FB-Debug: gGcZzyllZadlcn / 6jz2HqqouIcDnhTzxzR + etWXhZEnOcditfsaIUw0WjgO3nELHzveRCYa1UM86D3LA / nLnNw ==
Дата: ср, 11 января 2017 10:18:47 GMT
Подключение: keep-alive
Длина контента: 0

HTTP / 1.1 200 ОК
X-XSS-Защита: 0
public-key-pins-only-report: max-age = 500; пин-sha256 = «WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18 =»; пин-sha256 = «г / mIkG3eEpVdm + и / ко / cwxzOMo1bk4TyHIlByibiA5E =»; пин-sha256 = «q4PO2G2cbkZhZ82 + JgmRUyGMoAeozA + BSXVXQWB8XWQ =»; report-uri = «http://reports.fb.com/hpkp/» Прагма: без кэширования
Cache-Control: приватный, без кеша, без хранилища, должен повторной проверки
Истекает: сб, 01 января 2000 00:00:00 по Гринвичу
X-Content-Type-Options: nosniff
Строгая транспортная безопасность: максимальный возраст = 15552000; предварительная нагрузка
X-Frame-Options: DENY
Варьируется: Accept-Encoding
Тип контента: текст / HTML
X-FB-Debug: zwArox8KyM3BtwLymhiARCTltrrcE / pDqSWdqbHgstXVBEbIXG57Od2MfDnqgqSX5Tj43qoe8uYhphzwoZcXeg ==
Дата: ср, 11 января 2017 10:18:48 GMT
Передача-кодировка: чанки
Подключение: keep-alive

Все еще жду ответа.
Благодарю вас.

0

Решение

Установите пользовательский агент с помощью curl и попробуйте,

$browser = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.16 (KHTML, like Gecko) \Chrome/24.0.1304.0 Safari/537.16';
curl_setopt($ch, CURLOPT_USERAGENT, $browser);

Вот ответ с file_get_content,

$options = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n" .  // check function.stream-context-create on php.net
"User-Agent: Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.102011-10-16 20:23:10\r\n" // i.e. An iPad
)
);

$context = stream_context_create($options);
$json_post = @file_get_contents('https://www.facebook.com/plugins/video/oembed.json/?url=https%3A%2F%2Fwww.facebook.com%2Ffacebook%2Fvideos%2F10153231379946729%2F', false, $context);
$oembed = json_decode($json_post);
var_dump($oembed)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]