2010-08-28 6 views
3

Je veux accéder à https://graph.facebook.com/19165649929?fields=name (évidemment, il est également accessible avec "http") avec cURL pour obtenir le contenu du fichier, plus précis: J'ai besoin du "nom" (c'est json). Puisque allow_url_fopen est désactivé sur mon serveur web, je ne peux pas utiliser get_file_contents! Donc, j'ai essayé de cette façon:php: Obtenir le contenu url (json) avec cURL

<?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); 
?> 

Avec ce code, je reçois une page blanche! Quand j'utilise une autre page, comme http://www.google.com cela fonctionne comme un charme (j'obtiens le contenu de la page). Je suppose que Facebook vérifie quelque chose que je ne sais pas ... Qu'est-ce que ça peut être? Comment puis-je faire fonctionner le code? Merci!

Répondre

6

avez-vous ajouté ce message? Cependant, dans le fil php: Get html source code with cURL

ci-dessus nous avons trouvé votre problème beeing incapable de résoudre l'hôte et ce fut la solution:

//$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

Notez que l'API Facebook Graph nécessite une authentification avant de pouvoir afficher l'une de ces pages.

Vous avez essentiellement deux options pour cela. Soit vous vous connectez en tant qu'application (vous avez déjà enregistré) ou en tant qu'utilisateur. Voir le api documentation pour savoir comment cela fonctionne.

Ma recommandation pour vous est d'utiliser le PHP-SDK officiel. Vous le trouverez here. Il fait toute la magie de la session et de cURL pour vous et est très facile à utiliser. Prenez les exemples qui sont inclus dans le paquet et commencez à expérimenter.

Bonne chance.

+1

incorrect. name est des données publiques et ne nécessite pas de jeton d'accès. bien que de bonnes références données –