2

Я попытался получить данные изображения моего профиля в Facebook, используя как file_get_contents, так и curl.PHP - Загрузить изображение Facebook в Google Compute Engine

Проблема возникает в экземпляре моего вычислительного ядра Google, а на любом другом сервере (localhost - mamp, AWS) скрипт работает нормально.

Пример одного из сценариев я использовал

<?php 

var_dump(
    json_decode(
     file_get_contents("https://graph.facebook.com/_FACEBOOK_ID_/picture?width=720&height=720") 
    ) 
); 

Пожалуйста, имейте в виду, что я попытался с помощью параметра редирект = ложь, и получить доступ к URL изображения у меня есть в моем Ответ json возвращает false как-хорошо.

Кроме того, я пробовал использовать wget в SSH к URL-адресу изображения, которое возвращалось (403) Запрещено.

Мое предположение заключается в том, что мне нужно настроить что-то по-другому на моем сервере, а не на PHP, но потому, что я могу получить любое другое изображение с тем же сценарием - я не уверен, что.

+0

Некоторые веб-сайты отказываются доставлять контент, если не установлен действительный пользовательский агент. Я когда-то имел эту проблему и решил ее с установкой заголовка User User Agent в curl. – mondjunge

ответ

1

Я уже испытал эту точную проблему, Игнорирование проверки SSL при использовании cURL сделало трюк для меня.

$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); 
+0

, который сработал! удивительно, насколько это просто. – LironXYZ