PHP: Получить URL-адрес (JSON) с CURL - PullRequest
4 голосов
/ 29 августа 2010

Я хочу получить доступ к https://graph.facebook.com/19165649929?fields=name (очевидно, он также доступен через "http") с помощью cURL для получения содержимого файла, более конкретно: мне нужно "имя" (это json).Так как allow_url_fopen отключен на моем веб-сервере, я не могу использовать get_file_contents!Поэтому я попробовал это так:

<?php
$page = 'http://graph.facebook.com/19165649929?fields=name';
$ch = curl_init();
//$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
//curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_URL, $page);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>

С этим кодом я получаю пустую страницу!Когда я использую другую страницу, например http://www.google.com, она работает как брелок (я получаю содержимое страницы).Я думаю, что Facebook проверяет что-то, чего я не знаю ... Что это может быть?Как я могу заставить код работать?Спасибо!

Ответы [ 2 ]

6 голосов
/ 29 августа 2010

Вы дважды опубликовали это здесь? php: получить исходный код HTML с помощью cURL

однако в приведенной выше ветке мы обнаружили, что ваша проблема не может решить хост, и это было решением:

//$url = "https://graph.facebook.com/19165649929?fields=name";
$url = "https://66.220.146.224/19165649929?fields=name";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: graph.facebook.com'));
$output = curl_exec($ch);
curl_close($ch); 
0 голосов
/ 29 августа 2010

Обратите внимание, что API Graph Facebook требует проверки подлинности, прежде чем вы сможете просматривать любую из этих страниц.

У вас есть два варианта для этого. Вы входите в систему как приложение (вы уже зарегистрировались ранее) или как пользователь. Обратитесь к документации API , чтобы узнать, как это работает.

Я рекомендую вам использовать официальный PHP-SDK. Вы найдете это здесь . Он делает всю сессию и магию cURL для вас и очень прост в использовании. Возьмите примеры, входящие в комплект, и начните экспериментировать.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...