Был ли какой-то поиск, но ничего не пришло или устарело и не работает
Я использую график api, чтобы получать сообщения в facebook и форматировать их на своем сайте, работу URL / curl / json; однако изображение возвращается по умолчанию к самой маленькой версии 130×130. Я добавил во втором json внутри цикла foreach для каждого сообщения, чтобы захватить более крупный URL-адрес изображения, но это значительно замедляет загрузку страницы.
Есть ли параметр для сообщений, которые будут захватывать более крупное изображение 720×720 URl, а не крошечное, которое по умолчанию по умолчанию. Я попытался использовать поля = full_picture для второго (в цикле), но он не работает.
Также попытался использовать функцию file_get_contents () вместо решения cURL, но не было заметной разницы в скорости
Я также попытался просто заменить строку на данные изображения исходного массива, но facebook добавляет те oh = и oe = tokens к своим URL-адресам изображений, чтобы трюки тоже не работали.
$limit = 20; //App Info, needed for Auth $app_id = "app id removed :)"; $app_secret = "seceret code removed :)"; $url = 'https://graph.facebook.com/'.$profile_id.'/posts?limit='.$limit.'&access_token='.$app_id.'|'.$app_secret; $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); $json = json_decode($data, true); foreach($json[data] as $child) { $thisDate = $child['created_time']; $url='https://graph.facebook.com/' . $child['id'] . '?fields=full_picture&access_token='.$app_id.'|'.$app_secret; /* curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch); $pic = json_decode($data, true); */ $pic = json_decode(file_get_contents($url),true); } curl_close($ch);
Это решение действительно работает и обеспечивает большие изображения, но просто замедляет загрузку страницы из-за дополнительного вызова cURL внутри цикла.
спасибо
Вы можете получить эти данные в одном запросе, используя параметр fields
:
/me/posts?fields=message,full_picture
(Если вам нужны дополнительные поля, вам также нужно их перечислить.)