Envoyer des messages Twitter avec votre Raspberry Pi

Pour ce nouvel article, KoS (auteur de cet article) a contacté San Bergmans du site http://www.sbprojects.com pour parler de ses tutos. Et donc aujourd’hui KoS propose avec l’aide de San une méthode pour envoyer des tweets depuis le Raspberry via un script.

tweet

Article traduit de http://www.sbprojects.com/projects/raspberrypi/tweet.php

Avant que votre Raspberry Pi ne puisse envoyer des messages Twitter, aussi connus sous le nom de Tweets, vous devez lui créer un compte twitter http://www.twitter.com/ (si vous ne voulez pas que votre Pi tweet sur votre propre compte). Mais ce n’est pas tout, vous devez aussi créer un compte sur Supertweet http://www.supertweet.net/. Supertweet sera lié au compte Twitter via le processus 0Auth, ce qui vous permettra d’utiliser l’API Supertweet pour envoyer des tweets. Ceci est nécessaire car Twitter a arrêté de fournir sa propre API.
Vous aurez aussi besoin d’installer curl, un petit outil que vous pouvez installer en tapant la commande suivante :
sudo apt-get install curl
Copiez simplement le script ci-dessous et collez le dans un éditeur de texte comme nano sur votre Raspberry Pi. Après avoir collé le texte dans votre éditeur changez les deux variables avec vos informations. TWIT_USER est le nom d’utilisateur de votre compte Twitter et TWIT_SECRET est le mot de passe de votre compte Supertweet. Sauvegardez ensuite le fichier sous le nom tweet dans votre répertoire de binaires (NdT : /bin par défaut). Personnellement je garde toujours mes scripts dans le repertoire /home/pi/bin, c’est mon chemin.
Et n’oubliez pas de rendre le fichier exécutable avec la commande

chmod u+x tweet
NdT : Vous pouvez également changer le propriétaire du script, ce qui vous évitera de devoir faire un sudo pour l’appeler : sudo chown pi tweet
#! /bin/bash
# tweet
#
# Ce script envoie des tweets
# Utilisation :
# tweet "la chaîne de caractères à tweeter"
# Les caractères spéciaux ne seront pas pris en compte si vous ne délimitez pas votre chaîne avec des apostrophes
#
# Author: San Bergmans
#         www.sbprojects.com
# Variables de configuration
TWIT_USER="nom_utilisateur_twitter"
TWIT_SECRET="Mot_de_pass_supertweet"
# Autres variables
TWIT_URL="http://api.supertweet.net/1.1/statuses/update.json"
TWEET=$(echo "$*"|cut -c -140)
curl -u $TWIT_USER:$TWIT_SECRET -d "status=$TWEET" $TWIT_URL -s > /dev/null
NdT : attention, il est possible que l’adresse de l’API change, si le script ne marche plus, vérifiez l’adresse sur Supertweet
Une fois que vous avez sauvegardé et rendu exécutable le script , vous pouvez commencer à envoyer des tweets avec une commande telle que :
tweet « Wow, mon Raspberry Pi peut envoyer des tweets grace au script trouvé sur www.sbprojects.com«
Souvenez vous que les tweets sont limités à 140 caractères. Le script va simplement tronquer les messages supérieurs à 140 caractères. Et apparement il traite les liens web aussi, comme on peut le voir dans l’exemple précédent.

De la place pour les améliorations

Supetweet envoie un fichier XML après chaque tweet envoyé, contenant une foule de renseignements. Je supprime simplement ce fichier XML en l’envoyant vers /dev/null. Vous pouvez néanmoins modifier le script pour voir ce que Supertweet a à vous dire si vous le souhaitez.
Vous pouvez modifier le comportement du script pour rejeter les tweet supérieurs à 140 caractères au lieu de les tronquer. A vous de choisir ce que vous préférez.

Quelques conseils de prudence

Twitter ignorera les tweet identiques envoyés à des intervales trop rapprochés. Ce qui signifie que vous ne pourrez pas envoyer un tweet avec le même texte encore et encore. Vous pouvez facilement résoudre ce problème en ajoutant un timestamp à votre message.
Par ailleurs, j’ai vu que Supertweet (ou Twitter) saute parfois un message. Par conséquent, vous ne pouvez pas être absolument sûr que votre tweet va arriver. Je n’ai aucune idée du pourquoi ça arrive, c’est ainsi. Le message XML retourné par Supertweet (ignoré par mon script) ne donne aucune idée du pourquoi certains tweets sont ignorés.
[Chris] Partagez vos idées d’utilisation de ce script. Et merci à San pour l’article !
Vous aimez cet article ? Supportez-moi sur Patreon!

Vous aimerez aussi...