【问题标题】:PHP - Retrieve Facebook image in Google Compute EnginePHP - 在 Google Compute Engine 中检索 Facebook 图像
【发布时间】: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 用户代理标头来解决它。

标签: php facebook curl google-compute-engine file-get-contents


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 2018-02-14
    • 2018-04-28
    • 2014-04-20
    • 1970-01-01
    • 2014-12-14
    • 2015-01-12
    相关资源
    最近更新 更多