get shares count (posts facebook)

Petit nouveau ! | 9 Messages

12 juin 2015, 12:58

Bonjour,
J'essaye de récupérer le nombre de share d'un posts (facebook). J'arrive à récupérer les likes et les comments, mais pour les shares j'ai l'erreur suivante.

( ! ) Warning: file_get_contents(https://graph.facebook.com/115769411816 ... $authToken): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in C:\wamp\www\Fatiha\Test_api_fcb\config\fonction.php on line 29

Voici le code pour les fonctions
function fetchUrl($url){
	 	if (!$data = file_get_contents($url)) {
      			$error = error_get_last();
      			echo "HTTP request failed. Error was: message" ;
		} else {
      			echo "Everything went better than expected  ";
      			return file_get_contents($url);
		}
	}

	function getCOunt($postId, $type){
		$authToken = $_SESSION['xxxxxxxx'];
		$json_object = fetchUrl("https://graph.facebook.com/".$postId."/".$type."?$authToken}&limit=5000"); 
		
        	$feedarray   = json_decode($json_object, true);
       		 return $likesNum = count($feedarray['data']); // return the number of items in `data` array
	}
	function getShare($postId){
		$authToken = $_SESSION['xxxx'];
		$json_object = fetchUrl('https://graph.facebook.com/'.$postId.'?fields=shares&access_token=$authToken');
        	$feedarray   = json_decode($json_object, true);
        	return $sharesNum = count($feedarray['data']); // return the number of items in `data` array
	}

Voici mon code pour l'affichage

Code : Tout sélectionner

try { $postsLikesCount = getCOunt($postId, 'likes'); echo '<b>Likes_count</b>: '.$postsLikesCount.'<br>'; $postsCommentCount = getCOunt($postId, 'comments'); echo '<b>Comment_count</b>: '.$postsCommentCount.'<br>'; echo getShare($postId,'shares'); } catch (Exception $e) { // Deal with it. echo "Error: " , $e->getMessage(); }
Merci d'avance pour votre aide!!
Fati
Petite aide fait grand bien.” :mrgreen:

Mammouth du PHP | 688 Messages

12 juin 2015, 13:19

$authToken}&limit=5000
le } qui n'a rien à faire là ?

Petit nouveau ! | 9 Messages

12 juin 2015, 13:59

mon $authToken c'est mon acces Token, j'en ai besoin pour faire ma requête.
le &limit=5000 effectivement est de trop donc j'en ai pas trop besoins.

ma fonction getCount fonctionne avec les likes et les comments, mais pas avec les shares? je me demande pourquoi? Car d'après ce que je vois, ils sont au même niveau dans la configuration facebook.
Petite aide fait grand bien.” :mrgreen:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 juin 2015, 14:19

Bonjour,

Le problème vient de là :
$json_object = fetchUrl('https://graph.facebook.com/'.$postId.'?fields=shares&access_token=$authToken');
Ta variable $authToken n'est pas interprétée car située dans des guillemets simples
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

12 juin 2015, 14:38

Super, j'ai fais le changement et je n'ai plus ce message d'erreur! Mais un autre :o)

( ! ) Notice: Undefined index: data in C:\wamp\www\Fatiha\Test_api_fcb\config\fonction.php on line 55
la ligne 55 dans mon code =

Code : Tout sélectionner

/*ligne 54 */ $feedarray = json_decode($json_object, true); /*ligne 55*/ return $likesNum = count($feedarray['data']); // return the number of items in `data` array
Merci pour ta réponse en tout cas
Petite aide fait grand bien.” :mrgreen:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

12 juin 2015, 14:47

Il n'y a pas de 'data' dans ton tableau $feedarray.
Pour éviter le message de notice, tu peux faire un test avec isset($feedarray['data'])
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

12 juin 2015, 15:09

Merci!
Il me dis effectivement qu'il n'y a pas de data, mais quand j'utilise le graph API manuellement, il y a des shares sur les posts...
Donc je ne vois pas comment récupérer les infos.
Petite aide fait grand bien.” :mrgreen: