Client Twitter en ligne de commande
![]()
Voici un outil très intéressant en invit de commande (CLI), simple à utiliser et qui permet d'automatiser des actions sur Twitter. Merci à son auteur @sferik, porteur du projet sous hébergement GitHub.
L'outil ne remplacera pas Tweet Adder ou Socialomate, ni les meilleurs clients Twitter. Complémentaire à Tyrs, il réjouira les inconditionnels de la ligne de commande.
$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 10.04.4 LTSRelease: 10.04Codename: lucid
$ sudo apt-get install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic libsqlite3-dev checkinstall$ wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.3-p0.tar.gz$ tar -xvzf ruby-1.9.3-p0.tar.gz$ cd ruby-1.9.3-p0/$ ./configure –prefix=/usr/local/ruby$ make$ checkinstall
$ sudo yes | gem cleanup && gem list | awk '{print $1}' | xargs gem uninstall
$ sudo gem install t[sudo] password for XXXX:Successfully installed t-0.9.31 gem installedInstalling ri documentation for t-0.9.3…Installing RDoc documentation for t-0.9.3……
$ echo 'export PATH=$PATH:/usr/local/ruby/bin' >> ~/.bashrc
$ t authorize -c Consumer_key -s Consumer_secretIn a moment, you will be directed to the Twitter app authorization page.Perform the following steps to complete the authorization process:1. Sign in to Twitter2. Press "Authorize app"3. Copy or memorize the supplied PIN4. Return to the terminal to enter the PINPress [Enter] to open the Twitter app authorization page. 4Paste in the supplied PIN: XXXXXXAuthorization successful.

#!/bin/shratio=0.1f_ratio (){count=`t users -l $account | tail -1 | awk '{print $8,$9}'`var1=`echo $count | cut -d' ' -f1`var2=`echo $count | cut -d' ' -f2`res=$(echo "scale=2;$var2/$var1" | bc -l 2>/dev/null)
}echo -n "Followed by Twitter user : "read usernamet whois $username > /dev/null 2>&1EC=$?if [ $EC -ne 0 ]; thenecho "User not found"exit 0else# select active accountaccount=`t accounts | grep -iB1 active | grep -iv active`if [ -f ~/new_followings ]; thenrm ~/new_followingsfit followings -rf $username > ~/followedBy_$usernamet followings > ~/followings# max 200 users to follow per day (reasonable value)for user in `cat ~/followedBy_$username | grep -iv $account| head -n 200`do# following to follower ratio reaches 10 to 1f_ratioif [ $(echo "$res - $ratio" | bc | tr -d .) -lt 0 ]; thenecho "Stop sending follows. You're following 10 users for every 1 user following you."exit 0elsesleep $(( RANDOM%5+3 ))mval=`grep -i $user ~/followings`# if you don't already follow him, you shouldif [ -z "$val" ]; thent follow $user# he doesn't follow you right nowecho $user >> ~/new_followingsfifidonefi
#!/bin/sh# list of the people who follow you on Twittert followers > ~/followersfor user in `cat ~/new_followings`dosleep $(( RANDOM%5+3 ))mval=`grep -i $user ~/followers`# unfollow non reciprocal follows that were followedif [ -z "$val" ]; thent unfollow $userfidone
Il faut savoir que la limite imposée par Twitter (https://dev.twitter.com/docs/auth/oauth/faq) est de 350 requêtes authentifiées par heure via le protocole libre OAuth.
Voici le schéma simplifié du processus d'une authentification OAuth :

"Resource owner" représente l'utilisateur propriétaire de la ressource.
"Client" représente l'application qui accède aux ressources protégées de l'utilisateur propriétaire après que des droits d'accès aient été explicitement accordés par ce dernier.
"Authorization Server" représente l'application qui autorise l'application cliente à accéder aux ressources de l'utilisateur. En réponse à une demande d'autorisation, il transmet au client un jeton d'accès.
"Resource Server" représente le serveur qui héberge les ressources protégées de l'utilisateur propriétaire. Le serveur de ressources utilise le jeton d'accès pour le traitement des requêtes.
Client Twitter en ligne de commande bit.ly/IQ3Cyg #memoefix
— Alain BERNARD (@abernard1) Mai 7, 2012


Avez vous aimé cet article..? Merci de laisser un commentaire pour signaler votre passage. Vous pouvez également suivre le compte twitter @abernard1