16
SEP

3 bouts de code PHP pour interagir avec twitter

Publié le 16/09/09 à 10h52 par DJo

Voici trois bouts de code PHP pour interagir avec Twitter: Récupérer le nombre de follower, récupérer son dernier statut et un script d'auto follow.

Suivez moi sur Twitter

 

Récupérer le nombre de follower twitter en PHP

Pratique si vous souhaitez afficher le nombre de follower d'un compte twitter sans vous servir de l'API:

<?php
$xml=file_get_contents('http://twitter.com/users/show.xml?screen_name=catswhocode');
if (preg_match('/followers_count>(.*)</',$xml,$match)!=0) {
    $tw['count'] = $match[1];
}
echo $tw['count'];
?>

On récupère le XML d'infos correspondant à l'utilisateur, et on applique une regex, rien de plus simple, mais c'est tellement mieux quand le code est déjà prêt !

 

Récupérer son dernier statut Twitter en PHP

Si vous souhaitez afficher le dernier statut d'un compte twitter sur votre site sans utiliser l'API Twitter:

<?php
function get_status($twitter_id, $hyperlinks = true) {
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$twitter_id.xml?count=1");
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $src = curl_exec($c);
    curl_close($c);

    $status = '';

    if (strlen($src) > 0){
    
    	$xml = simplexml_load_string($src);
 
   	 	$status = htmlentities($xml->status->text);
	   	if( $hyperlinks ) $status = ereg_replace("(http://)(([[:punct:]]|[[:alnum:]])*)","<a href="\0" target="_blank">http://\2</a>",$status); 
    }
    
   return $status;
}
?>

Cette fois, nous allons utiliser cURL pour récupérer le contenu, mais vous pouvez très bien le faire avec un file_get_contents. Même chose, nous appliquons ensuite une regex.

 

Script d'auto follow Twitter en PHP

Script plus complexe qui permettra de suivre automatiquement les personnes qui utilisent un mot particulier dans un de leur tweet. Par exemple un hashtag.

<?php
// Twitter Auto-follow Script by Dave Stevens - http://davestevens.co.uk 

$user = "";
$pass = "";

$term = "#lafermeduweb"; // Terme à changer
 
$userApiUrl = "http://twitter.com/statuses/friends.json";

$ch = curl_init($userApiUrl);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$apiresponse = curl_exec($ch);
curl_close($ch);
$followed = array();

if ($apiresponse) {
    $json = json_decode($apiresponse);
    if ($json != null) {
        foreach ($json as $u) {
            $followed[] = $u->name;
        }
    }
}

$userApiUrl = "http://search.twitter.com/search.json?q=" . $term . "&rpp=100";
$ch = curl_init($userApiUrl);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$apiresponse = curl_exec($ch);
curl_close($ch);

if ($apiresponse) {
    $results = json_decode($apiresponse);
    $count = 20;
    if ($results != null) {
        $resultsArr = $results->results;
        if (is_array($resultsArr)) {
            foreach ($resultsArr as $result) {
                $from_user = $result->from_user;
                if (!in_array($from_user,$followed)) {
                    $ch = curl_init("http://twitter.com/friendships/create/" . $from_user . ".json");
                    curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    curl_setopt($ch, CURLOPT_POSTFIELDS,"follow=true");
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    $apiresponse = curl_exec($ch);

                    if ($apiresponse) {
                        $response = json_decode($apiresponse);
                        if ($response != null) {
                            if (property_exists($response,"following")) {
                                if ($response->following === true) {
                                    echo "Now following " . $response->screen_name . "n";
                                } else {
                                    echo "Couldn't follow " . $response->screen_name . "n";
                                }
                            } else {
                                echo "Follow limit exceeded, skipped " . $from_user . "n";
                            }
                        }
                    }
                    curl_close($ch);
                } else {
                    echo "Already following " . $from_user . "n";
                }
            }
        }
    }
}
?>

 

Si vous avez d'autres bouts de code PHP pour interagir avec Twitter, n'hésitez pas à les poster en commentaire, ou par email (via le formulaire de contact).

 

Follow me !
Trouvez d'autres portions de script pour Twitter sur ce site

Baraguiné par le 16/09/09 à 09h05
Super interressant, cependant ce qui serait sympa ce serait de voir comment faire pour mettre le meme module que sur ce site qui est lié a facebook.

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Connexion avec Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web