如何使用Oembed Facebook



我正在尝试使用oembed格式嵌入Facebook的帖子(例如视频)。根据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,现在我得到了无效的结果。如果我直接在浏览器上写入URL,则启用效果很好。我想念什么吗?谢谢。

更新

我尝试了卷发:

$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 访问控制 - 允许使用:选项 访问控制 - expepose-headers:x-fb-debug,x-loader长度 Access-Control-Allow-Origin:https://www.facebook.com 变化:起源 访问控制 - 允许的信念:true 内容类型:文本/html X-fb-debug:ggczzyllzadlcn/6jz2hqqouicdnhtzxzr etwxhzenocditfsaiuw0wjgo3nelhzvercya1um86d3la/nlnnw ==== 日期:2017年1月11日星期三10:18:47格林尼治标准时间 连接:保持活力 内容长度:0

http/1.1 200好 X-XSS保护:0 仅限公开键盘报告:max-age = 500;PIN-SHA256 =" WOIWRYIOVNA9IHABCIRSC7XHJLIYS9VWWUGOIUD4PB18 =";pin-sha256 =" r/mikg3eepvdm u/ko/cwxzomo1bk4tyhilbyibia5e =";PIN-SHA256 =" Q4PO2G2CBKZHZ82 JGMRUYGMOAEEZA BSXVXQWB8XWQ =";report-uri =" http://reports.fb.com/hpkp/" PRAGMA:无搜索 缓存控制:私人,无缓存,无存储,必须重新录制 到期:星期六,2000年1月1日00:00:00 GMT X-content-type-options:nosniff 严格的传输安全:max-age = 15552000;预付 X框架选项:否认 不同:接受编码 内容类型:文本/html X-fb-debug:zwarox8kym3btwlymhiarctltrrce/pdqswdqbhgstxvbebixg57od2mfdnqgqsx5tj43qoe8uyhphzwozcxeg == 日期:2017年1月11日星期三10:18:48格林尼治标准时间 转移编码:块 连接:饲养

仍在等待答复。谢谢。

用卷曲设置用户代理,然后尝试,

$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: enrn" .
                  "Cookie: foo=barrn" .  // 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:10rn" // 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)

相关内容

  • 没有找到相关文章

最新更新