-
FREE > s’envoyer des notifications par SMS
Aller dans https://mobile.free.fr/account/mes-options
A gauche, clic sur Mes Options (dans MON FORFAIT)
Puis vérifier que Notifications par SMS est bien coché.
Copier la clé API
Pour envoyer un SMS :
https://smsapi.free-mobile.fr/sendmsg?user=<id_user>&pass=<clé_api>&msg=coucou
BASH
curl -i -G "https://smsapi.free-mobile.fr/sendmsg?user=<id_user>&pass=<clé_api>&msg=<msg>"
-iaffiche le header en sortie.-Gspécifie qu’il s’agit d’une requête de type GETnotification par SMS d’une connexion ssh
Ajouter la ligne suivante à la fin du fichier
~/.bash_profileou~/.profilesi le premier n’existe pas :curl -s -G "https://smsapi.free-mobile.fr/sendmsg?user=<id_user>&pass=<clé_api>&msg=Connexion SSH depuis $SSH_CLIENT"
-ssilentAinsi, à chaque ouverture d’un session ssh, un SMS sera envoyé.
.profileest exécuté uniquement à la connexion contrairement à.bashrcqui est exécuté à chaque login. La différence se voit lorsqu’on ouvre différents terminaux sur la même connexion.script et alias
- Créer un fichier dans /usr/local/bin :
sms.sh#!/bin/bash URL_ROOT="https://smsapi.free-mobile.fr/sendmsg?" USER="XXX" PASS="XXX" curl -k "${URL_ROOT}user=${USER}&pass=${PASS}&msg=$1″ && echo "sms envoyé" && exit 0
-kou--insecurepour les communication via https- Créer un alias dans .bashrc :
alias sms=/usr/local/bin/sms
- Test :
sms "Salut !"
Voici un autre script bash:
#!/bin/bash URL_ROOT="https://smsapi.free-mobile.fr" NOM="XXX" PASS="XXX" message=${*// /%20} envoi=$(curl -i -k "$URL_ROOT/sendmsg?user=$NOM&pass=$PASS&msg=$1" 2>&1) retour_HTTP=$(echo "$envoi" | awk '/HTTP/ {print $2}') case $retour_HTTP in 200) echo "Le message a été envoyé correctement" ;; 400) echo "expéditeur/mot de passe erroné" ;; 402) echo "Trop de SMS ont été envoyés en trop peu de temps." ;; 403) echo "Le service n’est pas activé. Veuillez l'activer.";; 500) echo "Erreur côté serveur. Réessayez ultérieurement." esac exit 0
NB : Si on utilise le double-guillemet dans le message, il faudra l’échapper avec l’anti-slash:
sms "message avec des \"doubles guillemets\""
cron
sudo crontab -e @reboot /home/<user>/.local/bin/sms "Serveur redémarré"
PYTHON
import requests USER = "XXX" API_KEY = "XXX" MSG = "coucou" requests.get(f"https://smsapi.free-mobile.fr/sendmsg?user={USER}&pass={API_KEY}&msg={MSG}")