Page 1 sur 1

Utilisation des API sur Facebook

Posté : 15 déc. 2015, 00:56
par TH4W
Bonjour à tous,
Je viens vers vous afin d'arrêter de m'arracher les cheveux sur un problème assez bête...

Je cherche tout simplement à récupérer le nombre de partages total d'une URL sur Facebook, et à l'afficher dans un echo... Mais vraiment, vraiment pas moyen, malgré des dizaines de tests et de recherches effectuées.

Dans un premier temps, je récupère le nombre de partages via l'URL fournie par Facebook tout va bien, l'info que je veux récupérer et isoler est "shares" :

http://graph.facebook.com/?ids=http://w ... uctions.fr

Hors une fois que je met en place ce bout de code pour la récupérer, la variable "getlikes" m'affiche toujours 0... :

Code : Tout sélectionner

<?php function getlikes($url) { $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $url); $json = json_decode($json_string, true); return intval( $json[$url]['shares'] ); } $url = 'http://www.titanproductions.fr'; echo getlikes($url); ?>
Où est mon erreur ? Merci par avance pour votre aide !

Bien cordialement,

Cyril

Re: Utilisation des API sur Facebook

Posté : 15 déc. 2015, 01:03
par or 1
cela fonctionne chez moi. surement file_get_contents qui ne fait pas ce qui est attendu, à cause d'une configuration du serveur ?

Re: Utilisation des API sur Facebook

Posté : 15 déc. 2015, 01:43
par TH4W
Ah c'était donc ça... J'aurai pu chercher longtemps !
Je suis chez OVH, je vais me renseigner pour l'activer, en espérant que ça ne pose pas de souci.
Merci pour ton aide et à bientôt !

Re: Utilisation des API sur Facebook

Posté : 15 déc. 2015, 15:34
par TH4W
Je reviens vers vous, n'ayant pas trouvé de solution à mon problème...

J'ai en effet fait quelques tests en local, tout fonctionne parfaitement. Mais une fois en ligne sur mon serveur OVH, je récupère toujours la valeur "0"...

Pour voir le résultat : http://www.titanproductions.fr/ucad/lastsix.php
Ce malgré l'activation de la fonction allow_url_fopen sur mon serveur : http://www.titanproductions.fr/info.php

Avez vous une idée d'où pourrait venir le problème, ou de comment le contourner ? Je suis au bout du rouleau...

Un grand merci !

Re: Utilisation des API sur Facebook

Posté : 15 déc. 2015, 17:46
par or 1
voir si file_get_contents fonctionne pour un autre site externe que celui de facebook, si c'est le cas, alors cela peut venir d'un blocage de l'ip du serveur par facebook, car les ip d'ovh servent à des spammeurs/pirates.

Re: Utilisation des API sur Facebook

Posté : 16 déc. 2015, 05:01
par TH4W
Merci pour ta réponse !

Après avoir testé cette fonction sur un autre site, il s'avère qu'elle fonctionnait parfaitement. J'ai donc tenté d'afficher ces même résultats grâce à CURL, sans succès sur mon serveur (une erreur m'était retournée)

J'ai pu lire que générer un access_token pouvait régler certain souci, c'est ce que j'ai fait, je l'ai donc ajouté à mon URL pour finir par réécrire mon code :
<?php 

$json = file_get_contents("https://graph.facebook.com/v2.5/?ids=http://www.monurl.fr&access_token=104105113296984|6OWEkDCb8EVvVGoBaYPNUiMGoxg"); 

var_dump(json_decode($json));

?>
J'affiche le tout, et le sectionne avec JSON pour récupérer la variable qui m'intéresse (share_count) :
object(stdClass)#1 (1) { ["http://www.monurl.fr"]=> object(stdClass)#2 (3) { ["og_object"]=> object(stdClass)#3 (6) { ["id"]=> string(16) "1333112080038049" ["description"]=> string(114) "Description" ["title"]=> string(38) "Description" ["type"]=> string(7) "website" ["updated_time"]=> string(24) "2015-12-15T11:26:40+0000" ["url"]=> string(28) "http://www.monurl.fr/" } ["share"]=> object(stdClass)#4 (2) { ["comment_count"]=> int(0) ["share_count"]=> int(8) } ["id"]=> string(27) "http://www.monurl.fr" } }
Je pense être à deux doigts de récupérer cette valeur grâce à JSON, mais pas moyen de réussir à récupérer la valeur INT de mon share_count... J'ai lu pas mal de choses là dessus, mais la structure de chaque fichier étant différente je suis un peu perdu...

Re: Utilisation des API sur Facebook

Posté : 16 déc. 2015, 12:07
par or 1
la solution a été donnée :
$json = json_decode($json_string, true);
return intval( $json[$url]['shares'] );

Re: Utilisation des API sur Facebook

Posté : 16 déc. 2015, 20:13
par TH4W
En effet, le code à fournir pour trouver ma valeur était le suivant :
return intval( $json[$url]['share']['share_count'] );
Tout fonctionne parfaitement désormais, je vais pouvoir avancer ! Un grand merci pour ton aide or1 !