# Script connexion automatique FreeWifi



## Gregoryen (3 Mai 2016)

Bonsoir ! 

Voilà je recherche un script pour que quand je cliques dessus, il se connecte automatiquement à FreeWifi avec mes code Free que j'aurais installé dans le script.

J'ai trouver des sites qui donne le script mais après ils parlent de " Curl " et " Wget " mais je n'y comprend rien ! Je ne sais même pas comment cela s'installe etc..

Tout ce que je cherche c'est un tuto assez facile à mon faible niveau pour créer un petit script comme décris plus haut.

Merci à vous et bonne soirée.


----------



## bompi (3 Mai 2016)

Tu pourrais déjà nous montrer ledit script : cela nous aiderait à te dire quoi installer (s'il y a besoin d'installer quelque chose), comment paramétrer etc. 
Je déplace du côté réseau.


----------



## Gregoryen (4 Mai 2016)

Oui le code ressemble à cela :

#!/bin/sh
url="https://wifi.free.fr/Auth"
login="votre identifiant numérique"
password="votre mot de passe"
okmatch="CONNEXION AU SERVICE REUSSIE"

curl -s -F "login=${login}"-F "password=${password}""${url}"| grep -q "${okmatch}"&& growlnotify -m "Connecté à FreeWifi""FreeWifi"

"Ce script nécessite curl, et utilise growlnotify pour notifier lorsque la connexion est réussie.

Je conseille d'automatiser l'exécution de ce script à l'aide de ControlPlane, une application open source permettant d'automatiser certaines tâches en fonction de détections d'événements, dont le changement de SSID WiFi."


----------



## bompi (4 Mai 2016)

Pour Growl, tu devrais le trouver sur le Mac App Store (je n'ai pas mon Mac sous la main pour vérifier). Sinon regarde sur son site (ici). Note que le logiciel ne semble plus trop mis à jour. Néanmoins il doit être possible d'adapter le script pour intégrer d'autres commandes de notification, pour t'éviter d'utiliser Growl [j'aime bien Growl mais maintenant qu'il y a le centre de notifications...]
Par exemple *terminal-notifier* comme indiqué ici (il n'a pas l'air tellement à jour non plus, cela dit...)
[
À vue de nez, ça donnerait, une fois *terminal-notifier* installé :

```
curl -s -F "login=${login}"-F "password=${password}""${url}"| grep -q "${okmatch}"&& terminal-notifier -message "Connecté à FreeWifi" -title "FreeWifi"
```
]

Quant à *curl*, il me semble bien qu'il est installé avec le système (puisqu'il a une page de manuel).
Quel système est installé sur ton ordinateur ?


----------



## Gregoryen (5 Mai 2016)

Merci de ta réponse rapide ! 

J'utilise El capitan 10.11..4 sur Macbook pro retina mi 2012.

Le script je le copie colle dans l'éditeur de script ? Je met les id entre les parenthèses mais quand je fait play il me dit " *Erreur de syntaxe « « " » » ne peut pas se trouver après « identificateur ».*"

Mon script :
curl -s -F "login=${*CEST LA JE MET MON ID*}"-F "password=${*MON PASSWORD*}""${url}"| grep -q "${okmatch}"&& terminal-notifier -message "Connecté à FreeWifi" -title "FreeWifi"


----------



## bompi (5 Mai 2016)

Si tu penses à l'éditeur de script d'Apple, ce n'est pas lui.
[Il s'agit ici d'un script écrit dans le langage intégré du _shell_ *bash*. Pour l'éditer il faut un éditeur de texte simple. Comme TextWrangler, qui est gratuit, et plein d'autres (TextMate, Sublime Text etc.) 
Tu peux aussi utiliser TextEdit, en faisant attention d'être en mode texte simple.]

Cela étant, pour faire ce que tu veux, utilise plutôt Automator. Tu ouvres Automator et crées une nouvelle application.
Tu lui ajoutes ensuite une action "Run Shell Script" (je ne sais pas le libellé en français ; c'est dans la sous-section Utilitaires) et tu copies dans l'action le contenu du script.
Tu enregistres et ça devrait être bon.


----------



## Gregoryen (5 Mai 2016)

Oui le pire c'est que je connais TextWrangler, et au début je voulais le faire avec Automator puis quand j'ai vu éditeur de script, il m'a semblé que c'était aussi logique de prendre celui la. Sinon cela me donne ça et ne marche pas :

http://image.noelshack.com/fichiers/2016/18/1462468661-screenshot-355.jpg


----------



## bompi (6 Mai 2016)

Cela dit donc que ça ne trouve pas *terminal-notifier*.
Si tu ne l'as pas installé : il faut l'installer 
Ensuite, il faut s'assurer que la commande est dans les chemins connus [le _shell_ a un certain nombre de chemins où il sait devoir trouver les commandes ; une commande en-dehors de ces chemins lui est inconnue].
Ou alors mettre le chemin complet jusqu'à la commande.
Par exemple, la commande *curl* se trouve dans le répertoire */usr/bin* : en tapant */usr/bin/curl* le _shell_ arrivera dans tous les cas à la retrouver.


----------



## Gregoryen (6 Mai 2016)

Ok merci ! Et au lieu d'installer un logiciel de notif, ne peut-on pas le remplacer par le centre de notif d'apple ?


----------



## bompi (6 Mai 2016)

Tu peux utiliser Automator aussi pour afficher une notification.
Je ne suis pas très calé sur la manipulation de l'outil mais j'ai fait un petit test (voir photo) qui permet d'affecter la sortie (*stdout*) du script à une variable et ensuite d'utiliser cette variable dans un objet de notification.


----------



## bompi (6 Mai 2016)

Du coup, je modifierais légèrement le code comme ceci :

```
url="https://wifi.free.fr/Auth"
login="votre identifiant numérique"
password="votre mot de passe"
okmatch="CONNEXION AU SERVICE REUSSIE"

export myMessage="Non connecté au service FreeWifi"

curl -s -F "login=${CEST LA JE MET MON ID}"-F "password=${MON PASSWORD}""${url}" | grep -q "${okmatch}"&& export myMessage="Connecté à FreeWifi"

echo $myMessage
```
Je commence par initialiser le message de sortie à une valeur par défaut (on n'est pas connecté), le message étant modifié si le test de la connexion est positif.
Ensuite on envoie le contenu dudit message dans le tuyau de sortie.

Il y a sans doute mieux à faire mais je ne connais pas encore les arcanes de cette application.


----------



## Gregoryen (7 Mai 2016)

Merci ! Quand je lance l'app je ne reçois pas de notif mais je suis déjà connecté dessus.

J'ai essayé de supprimer Freewifi dans reseau enregistré pour tout recommencer à zéro mais quand je rechoisi FreeWifi il est connecté et me demande pas le mot de passe. 

La prochaine fois qu'il me le demande je lance le script voir s'il marche.


----------

