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

Publié par Sophie dans tuto

Merci pour cette explication claire qui m'aide grandement... JS et moi, on est pas encore copain !

Publié par Fobec dans tuto

Bonjour,

Sur Fobec.com, nous utilisons mod_expires.c pour envoyer automatiquement un code 304 au navigateur internet.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType im...

Publié par Fobec dans news

Bonjour,
la localisation des adresses ip utilise plusieurs algo de recherche de position geographique. La precision du rapport d'analyse correspond la qualite de la localisation:
9/10 la locali...

Publié par dotnet dans php5

Cette interface est intéressant par le fait qu'elle soit universelle, donc son intérêt pour moi est qu'elle permet l'accès aux bases de données Microsoft SQL Server....

Publié par tactictoe dans CMS

Erreur ligne 8 et 26:
Lire : Reg.OpenKey('\Software\Microsoft\Internet Explorer\Main\', false);
et non pas Reg.OpenKey('SoftwareMicrosoftInternet ExplorerMain', false);