Publié le 12/11/2012
Auteur Fobec
Réseaux sociaux
0 partages
0 tweets
2 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 5027 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 261 articles
|BIO_PSEUDO|
Commentaires récents

Publié par mohinfo dans CMS

je vous demande un mini projet delphi pour gérer la base de donnée

Publié par maaaher dans CMS

c'est un travail sup....

Publié par farid dans CMS

formation delphi 7

Publié par ric dans CMS

c\'est la première fois que j\'utilise ce logiciel

Publié par jerome dans php5

Excellente classe, merci pour ce petit code qui va me permettre de me passer de ma page igoogle qui ferme vendredi