经过两天的研究,我没有设法找到我的问题/问题的答案/解决方案。所以,我在这里。对不起,如果它已经发布到某个地方,我会很感激链接。所以...Curl,file_get_contents和Instagram的CDN
我有一个应用程序,根据标签获取instagram内容/图像。我需要将选择的图像从instagram cdn(imageurl)复制到我的服务器。
用来工作顺利直到最近应用程序...问题在于内:
$img = "https://scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/s320x320/e35/11848968_1650345541876481_204433741_n.jpg"
imagecreatefromjpeg($img);
错误输出是:未能打开流 - SSL连接超时
如果是使用 “http://distillery.s3.amazonaws.com/media/2010/07/16/4de37e03aa4b4372843a7eb33fa41cad_7.jpg “作为网址,没有问题。
我也尝试过其他解决方案,如使用curl:
function getSSLPage($url) {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // tried true/false
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false); // tried true/false
//curl_setopt($ch, CURLOPT_SSLVERSION,1); tried 1,2,3
$retorno['arquivo'] = curl_exec($ch);
$retorno['status'] = curl_getinfo($ch);
$retorno['error'] = curl_error($ch);
curl_close($ch);
return $retorno;
}
var_dump(getSSLPage("https://scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/11950482_1505223163123401_2062846740_n.jpg"));
同样的事情发生有两个URL,scontent.cdinstragram回报未能打开流和亚马逊网址工作正常。
另一种方法我试过:
function img_create($filename, $mime_type)
{
$content = file_get_contents($filename);
$base64 = base64_encode($content);
return ('data:' . $mime_type . ';base64,' . $base64);
}
?><img src="<?php print img_create('http://distillery.s3.amazonaws.com/media/2010/07/16/4de37e03aa4b4372843a7eb33fa41cad_7.jpg','jpeg'); ?>" alt="random logo" />
同样的事情,适用于distillery.s3.amazonaws.com和scontent.cdninstagram.com
我知道得到一个不工作通过php的图像必须在服务器中禁用,但如果是这样,我怎么可能获得这些图像?
我试过认证和与用户/用户名/ media_id列出用户的图像和令牌提供访问,所以我会得到amazonaws网址,但仍然我得到scontent.cdninstagram imageurls =/
非常感谢!
这更可能是您的服务器上的问题,而不是Instagram的问题。似乎有东西阻塞了传出的SSL连接。你有可以与之通话的服务器管理员吗? –
你好,是的。我有根,但机器有一个网络管理员,我可以交谈。任何提示哪里/要检查这个?你有没有尝试过,它的工作原理? – marciop
我真的没有想法。第二个例子中的curl调用是否返回相同的错误? –