我正在尝试用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使用了相同的代码,现在我得到了一个空结果。如果我直接在浏览器上写网址,oEmbed就能正常工作。我是不是遗漏了什么?谢谢。
更新
我试着和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找到的位置: gGcZzyllZadlcn/6jz2HqqouIcDnhTzxzR+etWXhZEnOcditfsaIUw0WjgO3nELHzveRCYa1UM86D3LA/nLnNw==访问-控制-允许-方法:选项访问-控制-公开-标题:X,Location长度访问-控制-允许-来源:原产地访问-控制-凭据:真实内容-类型: text/html X:https://www.facebook.com/unsupportedbrowser日期:47,2017年1月11日:18:47 GMT连接:保持-活动内容-长度:0 HTTP/1.1 200 OK XSS保护:0公钥-引脚-仅报告:最大值-年龄=500;pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18=";pin-sha256="r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=";pin-sha256="q4PO2G2cbkZhZ82+JgmRUyGMoAeozA+BSXVXQWB8XWQ=";report-uri="http://reports.fb.com/hpkp/“Pragma:无缓存缓存-控制:私有,无缓存,非存储,必须-重新验证过期:星期六,2000年1月1日:00:00格林尼治时间X-内容-类型-选项:嗅探严格-传输-安全性:最大-年龄=15552000;预加载X帧-选项:拒绝更改:接受-编码内容-类型: text/html X: zwArox8KyM3BtwLymhiARCTltrrcE/pDqSWdqbHgstXVBEbIXG57Od2MfDnqgqSX5Tj43qoe8uYhphzwoZcXeg==日期: Wed,2017年1月11日10:18:48 GMT传输编码:分组连接:保持-活动
还在等回复。谢谢。
发布于 2017-01-11 10:36:26
用卷曲设置用户代理并尝试,
$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)https://stackoverflow.com/questions/41345863
复制相似问题