Publié le 12/11/2012
Auteur Fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Trouver les partages sur les reseaux sociaux

Les réseaux sociaux sont incontournables pour diffuser rapidement une information. Que ce soit sur FaceBook, Twitter ou encore GooglePlus, les plateformes d'échanges disposent d'une API que l'on peut interroger en PHP.

Rechercher les partages d'une URL

A partir d'une URL, la class SocialShareChecker interroge les 3 API et retourne le nombre de partage détectés sur FaceBook, Twitter et Google Plus.
<?php
/**
 * Rechercher les partages d'une URL sur les reseaux sociaux
 *
 * @author Fobec 11/2012
 * @copyright http://www.fobec.com/php5/1118/trouver-partages-sur-reseaux-sociaux.html
 */
 
class SocialShareChecker {
    //URL des API
    const API_FB='http://api.facebook.com/restserver.php?method=links.getStats&urls=';
    const API_TW='http://urls.api.twitter.com/1/urls/count.json?url=';
    const API_GP="https://clients6.google.com/rpc";
    //propriétés publique Facebook
    public $fb_share=0;
    public $fb_like=0;
    public $fb_comment=0;
    //propriétés publique twitter
    public $tw_tweet=0;
    //propriétés publique Google  
    public $gp_count=0;
 
    /**
     * Requetes sur les API des réseaux sociaux
     * @param string $url
     */
    public function query($url) {
        $this->parse_fb($url);
        $this->parse_tw($url);
        $this->parse_gp($url);
    }
 
    /**
     * Extraire les partages FaceBook
     * @param string $url
     */
    private function parse_fb($url) {
        $url = self::API_FB.urlencode($url);
        $xml_buf = file_get_contents($url);
        $xml = simplexml_load_string($xml_buf);
 
        if ($xml) {
            $this->fb_share=intval($xml->link_stat->share_count);
            $this->fb_like=intval($xml->link_stat->like_count);
            $this->fb_comment=intval($xml->link_stat->comment_count);
        }
    }
 
    /**
     * Extraire les partages Twitter
     * @param string $url
     */
    private function parse_tw($url) {
        $url = self::API_TW.urlencode($url);
        $json_string = file_get_contents($url);
 
        $json = json_decode($json_string, true);
        $this->tw_tweet= intval( $json['count'] );
    }
 
    /**
     * Extraire les partages Google  
     * @param string $url
     */
    private function parse_gp($url) {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, self::API_GP);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p",
        "params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer",
        "groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
        $curl_results = curl_exec ($curl);
        curl_close ($curl);
        $json = json_decode($curl_results, true);
 
        $this->gp_count= intval( $json[0]['result']['metadata']['globalCounts']['count'] );
    }
}
?>

Exemple de partage sur les réseaux sociaux

Comment utiliser la class SocialShareChecker. Il suffit de renseigner l'url à tester et de lancer la requête. Dans l'exemple, la class SocialShareChecker recherche le nombre de partage Facebook, Twitter et GooglePlus pour l'url http://www.fobec.com/apps/localiser-ip/.
<?php
//URL à tester
$url = "http://www.fobec.com/apps/localiser-ip/";
 
$checker=new SocialShareChecker();
$checker->query($url);
 
echo 'URL: '.$url;
echo '<br>'.$checker->fb_share.' Partages FaceBook';
echo '<br>'.$checker->tw_tweet.' Tweets';
echo '<br>'.$checker->gp_count.' Google Plus';
?>

Résultat
URL: http://www.fobec.com/apps/localiser-ip/
16 Partages FaceBook
6 Tweets
2 Google Plus

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
php5 - class
Mise a jour
12/11/2012
Visualisation
vu 5880 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 263 articles
|BIO_PSEUDO|
Commentaires récents

Publié par liomka dans java

Merci! C'étais l'exemple parfait donc j'avais besoin pour apprendre la programmation Client/Serveur en Java ;)

Publié par Fobec dans CMS

Norton emet une alerte de type 'Suspicious.Cloud', hasard de compilation ou menace serieuse ? Faites attention en installant le logiciel.<br>Merci JM de l'avoir signaler.

Publié par Axel dans java

la position sur mouseDragged a ete corrigee dans l'article.
Merci Alpcom !

Publié par jmc dans CMS

Autre lien de chargement : http://www.fobec.com/protec/logiciels2/encadre.php3?id_log=217&cat=VBureautique

Publié par jean-francois dans logiciel

Bonjour,
je suis tombe par hasard sur cette page que je trouver super. je cherche a faire quelque chose comme ca sur mon site. Et je galere depuis des jours... :(
Est-ce que tu partages le...