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

Publié par bob le poisson dans java

Bonjour, votre script est tres bien mais attention l'utilisation du mot cle static sur la methode scale(BufferedImage bImage, double factor) est inutile et empeche de liberer la ressource.

Publié par robbie dans tuto

desole pour le message en multiple j'ai eu un ptit beug

Publié par Djoe dans java

Rien à redire, fonctionne parfaitement. Merci beaucoup

Publié par Christophe dans CMS

je te propose d'améliorer la fonction
procedure TForm1.Button1Click(Sender: TObject);
begin
GetDesktopListViewHandle;
ListView_SetTextBkColor(hLV, $FFFFFFFF);
ListView_...

Publié par Tchat dans news

Analyses interessantes.
J'ai constate aussi des comportements etranges de Google concernant les placements des sites sur leurs requetes.
Par contre j'ai remarque que Google ne tient pl...