|
Posté le: Mardi 20 Juillet 2021 14:54:29
Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne
| |
|
|
sauce (Auteur du topic)
Intéressé
Hors-ligne
Inscrit le : 23 Aoû 2006 Messages : 55
Sexe :
Ville : Chateauneuf De Galaure
Forfait : Freebox IP/ADSL Max
|
|
|
|
|
|
|
Bonjour,
Je suis en train de faire un petit script pour utiliser l'API SMS de Free Mobile mais j'ai un petit souci avec les caractères spéciaux.
Dans l'ensemble ça fonctionne plutôt bien mais il doit y avoir un petit bug côté décodage d'URL chez Free.
Requête GET qui fonctionne (les caractères spéciaux sont bien décodés) :
Code: | https://smsapi.Free-mobile.fr/sendmsg?msg=n%C2%B03%0AHeure%20%3A%2020%20Juil%202021%2012%3A04%3A54%20CEST&pass=xxx&user=xxx |
Requête qui ne fonctionne pas (mon "n°3" du début est transformé en n3 le "°" a dégagé !)
Code: | https://smsapi.Free-mobile.fr/sendmsg?msg=cn%C2%B03%0AHeure%20%3A%2020%20Juil%202021%2012%3A04%3A54%20CEST&pass=xxx&user=xxx |
Bien sûr j'ai testé en remplaçant les %20 par des "+" c'est pareil.
Entre les 2 requêtes j'ai juste rajouté le "c" en première place !!!!
De plus la deuxième requête fonctionne si j'enlève le "CEST" de la fin ! C'est du n'importe quoi n'est-ce pas ?!
A mon avis petit bug du côté de Free non ?
C'est très embêtant car c'est aléatoire. Si le texte change un petit peu ça passe.
Pouvez-vous tester de votre côté si vous avez le même problème avec les 2 requêtes du dessus ?
Cordialement,
Eric |
|
|
|
|
Posté le: Dimanche 25 Juillet 2021 11:05:01
Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne
| |
|
|
abel99
Connaisseur
Hors-ligne
Inscrit le : 18 Jan 2005 Messages : 33808
Sexe :
Ville : Paris 05
Forfait : Freebox Optique
|
|
|
|
|
|
|
As-tu essayé en mettant le texte entre guillemets au lieu de l'encoder ?
Par exemple : msg="n°1 Nº2 essai du 25/07/2021" passe sans problème
(le SMS reçu comporte aussi les guillemets).
Il y a 2 caractères "degrés" différents :
176 B0 °
186 BA º
mais ça ne passe pas si on encode %B0 ou %BA
Les caractères au-delà de 128/80 ne sont pas reçus si message encodé alors qu'ils passent si entre guillemets.
Par exemple, si j'encode dans le message les 32 derniers caractères Ascii :
Code: | msg=%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF |
le message est bien envoyé mais le SMS reçu est vide.
Si j'utilise les guillemets : Code: | msg="áâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" |
la chaîne de caractères est bien reçue |
|
_________________ Pour valider la localisation d'une ZMD ou d'un NRA/NRO en IPV6,
se connecter sur https://freepon.lafibre.info/
Mini 4k fibre P2P PES75 |
|
|
|
Posté le: Lundi 26 Juillet 2021 09:02:32
Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne
| |
|
|
sauce (Auteur du topic)
Intéressé
Hors-ligne
Inscrit le : 23 Aoû 2006 Messages : 55
Sexe :
Ville : Chateauneuf De Galaure
Forfait : Freebox IP/ADSL Max
|
|
|
|
|
|
|
Bonjour,
Oui mais dans mon exemple il n'y a qu'une seule lettre qui change (le "c" au début du message) !
Donc l'API doit quand même avoir un souci dans sa fonction de décodage d'URL.
Il y a des standards pourquoi ne pas les respecter tout simplement ?
De plus dans l'interface de Free ils disent que l'on peut utiliser une requête POST ça permet de s'affranchir de l'encodage des caractères mais en POST ça ne fonctionne pas du tout.
Cela fonctionne si on passe du JSON (absolument pas indiqué sur leur page) mais toujours ce problème d'encodage. |
|
|
|
|
Posté le: Jeudi 29 Juillet 2021 07:55:09
Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne
| |
|
|
abel99
Connaisseur
Hors-ligne
Inscrit le : 18 Jan 2005 Messages : 33808
Sexe :
Ville : Paris 05
Forfait : Freebox Optique
|
|
|
|
|
|
|
Un détail : que vient faire le caractère hexa/décimal C2/194 "┬" en Ascii étendu (aussi indiqué "Â" en ISO 8859-1 ( Latin - 1 ) dans ton message ?
http://www.table-ascii.com/
As-tu essayé de ne mettre que le caractère 0A/10 (Line Feed) en hexa et les autres en caractères normaux, y compris les espaces ? |
|
_________________ Pour valider la localisation d'une ZMD ou d'un NRA/NRO en IPV6,
se connecter sur https://freepon.lafibre.info/
Mini 4k fibre P2P PES75 |
|
|
|
Posté le: Jeudi 29 Juillet 2021 08:15:46
Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne
| |
|
|
sauce (Auteur du topic)
Intéressé
Hors-ligne
Inscrit le : 23 Aoû 2006 Messages : 55
Sexe :
Ville : Chateauneuf De Galaure
Forfait : Freebox IP/ADSL Max
|
|
|
|
|
|
|
Le message dans l'URL est encodé en UTF-8 donc ce n'est pas C2 c'est "C2 B0" le symbole degré.
Mais ça fonctionne puisque le premier message passe nickel.
Je rajoute juste un "n" au début ça foire.
Oui j'ai tout essayé et ça foire toujours à un moment. |
|
|
|
|
Posté le: Jeudi 29 Juillet 2021 10:28:13
Numéro présent dans le profil, mais problème de récupération des caractéristiques de la ligne
| |
|
|
sauce (Auteur du topic)
Intéressé
Hors-ligne
Inscrit le : 23 Aoû 2006 Messages : 55
Sexe :
Ville : Chateauneuf De Galaure
Forfait : Freebox IP/ADSL Max
|
|
|
|
|
|
|
Même en JSON et en POST avec un petit programme PHP ça fait la même chose !
Code: | <?php
$user = "xxx";
$pass = "xxx";
$url = "https://smsapi.Free-mobile.fr/sendmsg";
$msg_ok = "n°3\nHeure : 20 Juil 2021 12:04:54 CEST";
$msg_pas_ok = "c" . $msg_ok;
$payload = json_encode(array( "user"=> $user, "pass" => $pass, "msg" => utf8_encode($msg_ok)));
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json; charset=UTF-8'));
$data=curl_exec($ch);
curl_close($ch);
$payload = json_encode(array( "user"=> $user, "pass" => $pass, "msg" => utf8_encode($msg_pas_ok)));
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json; charset=UTF-8'));
$data=curl_exec($ch);
curl_close($ch);
?>
|
Si c'est pas un problème côté Free franchement... |
|
|
|
|
|
|