2012-05-25 8 views
0

J'utilise cURL pour accéder à une page facebook. Localement, cela fonctionne parfaitement, mais quand je le télécharge sur mon serveur de développement, il se casse et renvoie une chaîne vide. J'ai vérifié et cURL est installé sur le serveur. Voici le code que j'utilise pour accéder à facebook:Problèmes cURL et Facebook

$header = array(); 
$header[] = 'Accept: text/json'; 
$header[] = 'Cache-Control: max-age=0'; 
$header[] = 'Connection: keep-alive'; 
$header[] = 'Keep-Alive: 300'; 
$header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'; 
$header[] = 'Accept-Language: en-us,en;q=0.5'; 
$header[] = 'Pragma: '; 

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, 'http://facebook.com/feeds/page.php?format=json&id=135137236003'); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)'); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_ENCODING, ''); 
curl_setopt($ch, CURLOPT_TIMEOUT, 20); 

$result = curl_exec($ch); 

curl_close ($ch); 

Toute aide est appréciée!

+0

est php_curl activé? vous pouvez trouver par echo phpinfo() et trouver le mot curl si curl n'est pas là – Venu

+0

yes curl est activé. – jasonaburton

+0

Avez-vous essayé d'enrouler d'autres pages pour exclure la possibilité d'un problème entre votre serveur et Facebook? –

Répondre

0

Modifiez l'en-tête d'acceptation en */* ou application/json car facebook envoie l'en-tête de réponse en tant que application/json.

Et changer cette url

http://facebook.com/feeds/page.php?format=json&id=135137236003 

à

http://www.facebook.com/feeds/page.php?format=json&id=135137236003 

comme facebook réoriente la demande non-www aux demandes www. Bien que cela fonctionne pour vous comme mis suivre l'emplacement, mais il enregistre un voyage de reound

+0

C'était tout. Une raison pour laquelle le changement est nécessaire entre le serveur local et le serveur de développement? – jasonaburton

+0

Je suppose que c'est dû à différentes versions de curl :) – Venu

+0

Cool ... Merci! – jasonaburton