PHP - 在 Google Compute Engine 中检索 Facebook 图像
Posted
技术标签:
【中文标题】PHP - 在 Google Compute Engine 中检索 Facebook 图像【英文标题】:PHP - Retrieve Facebook image in Google Compute Engine 【发布时间】:2016-10-27 03:27:27 【问题描述】:我尝试使用 file_get_contents 和 curl 检索我的 Facebook 个人资料图片的图像数据。
问题出现在我的 Google 计算引擎实例上,而在任何其他服务器(localhost - mamp、AWS)上,脚本都可以正常工作。
我正在使用的脚本之一的示例
<?php
var_dump(
json_decode(
file_get_contents("https://graph.facebook.com/_FACEBOOK_ID_/picture?width=720&height=720")
)
);
请记住,我已尝试使用参数 redirect=false,并且访问我在 json 响应中获得的图像 url 也返回 false。
另外,我尝试在 SSH 中使用 wget 到图像的 url,它返回 (403) Forbidden。
我的假设是我需要在我的服务器中配置一些不同的东西,而不是 PHP,但是因为我能够使用相同的脚本检索任何其他图像 - 我不确定是什么。
【问题讨论】:
如果没有设置有效的用户代理,一些网站会拒绝交付内容。我曾经遇到过这个问题,并通过在 curl 中设置 Firefox 用户代理标头来解决它。 【参考方案1】:我已经遇到过这个确切的问题, 在使用 cURL 时忽略 SSL 验证对我有用。
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Ignore SSL verification
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/_FACEBOOK_ID_/picture?width=720&height=720");
$data = curl_exec($ch);
curl_close($ch);
var_dump($data);
【讨论】:
以上是关于PHP - 在 Google Compute Engine 中检索 Facebook 图像的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为 google_compute_engine 的模块
ruby Google Compute Engine快照在Ruby中创建和旋转
如何在 Google Compute Engine 上运行 Docker?