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 6186 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 267 articles
|BIO_PSEUDO|
Commentaires récents

Publié par coramarr dans java

Peut-on trouver des infos sur cette suite qui serait utilise en statistiques. Des documents ou ouvrages qui relatent les divers possibilites d'utilisation de cette suite.
Je suis un particulier ni...

Publié par piranhas dans java

bonjour, je veux te signaler que la piece jointe est fausse car il n\'y pas de liaison entre le modele et la vue, toutes le information passe par le controlleur.

Publié par berrr dans news

Le PageRank de mon site www.specialvacances.com et toujours 0 pourquoi !

Publié par Fobec dans tuto

Pour la distribution Linux Mint 12 Lisa, saisir dans le terminal:
# sudo service lightdm restart

Publié par JMC dans logiciel

L'adresse donnée est celle du provider et non celle de l'utilisateur apparemment, il me localise a Braine l'Alleud et je me trouve à Huy ?
Sinon génial qui en est l'auteur ?
Cordia...