Webservice Smartping

Dimanche 06 Avril 2014 05:19

Bonjour à tous.
Après avoir lu pas mal de sujets où beaucoup demandent comment accéder aux données de la FFTT (points mensuels, résultat des rencontres, ...) J'ai décidé de partager ce que j'ai trouver et qui en aidera surement plus d'un.
J'ai en effet décortiqué le Webservice utilisé par Smartping pour accéder aux données.
Il s'agit de simples url qui renvoient du XML. Il n'y a aucune authentification ou autre protection.
Exemple pour les données sur un joueur: http://www.fftt.com/mobile/xml/xml_joueur.php?licence=XXX
(Remplacez XXX par un numéro de licence).

J'ai créé une Class en PHP permettant d'accéder à toutes les API que j'ai trouvés
Le code est ici: http://pastebin.com/0kguYpKR
Faites en bon usage ^^

Personnellement je suis en train de développer un site Mobile utilisant cette Class pour remplacer Smartping car je suis lassé de tous ces bugs ^^

Changements

V1.1:
- Ajout de l'API d'initialisation (avec numéro de serie)
- Ajout de la photo, progression mensuelle, progression annuelle des joueurs
- Possibilité de logguer les appels au webservice
- Possibilité de préciser l'IP source (dans le cas d'un serveur disposant de plusieurs IP)
- Utilisation de cUrl au lieu de file_get_contents (Ce dernier ne supporte pas bien HTTP1.1 et Keep-Alive) pour imiter au mieux les requêtes de Smartping
Message modifié 2 fois, dernière modification Lundi 14 Avril 2014 02:06 par SMGbab16

Lundi 07 Avril 2014 12:13

Beau boulot ! Clin d'oeil
A 2 semaines près, tu me faisais gagner pas mal de temps ! Tant pis :p
Quoique c'est tellement plus clair et propre que ce que j'ai fait, que je vais peut être avoir envie de le refaire et de compléter ce que j'ai fait ...
Comment as-tu fait pour récupérer les url utilisées par smartping ?
Message modifié 2 fois, dernière modification Lundi 07 Avril 2014 12:25 par robinos33

Lundi 07 Avril 2014 13:16

Super, bravo pour ton boulot, c'est vraiment chouette. En revanche, est-ce qu'on ne risque pas de voir cet accès XML coupé si trop d'accès (comme la FFTT l'avait fait pour l'accès aux pages de classement des équipes depuis un support mobile, suite à un développeur qui s'était appuyé là-dessus pour fournir sa propre appli) ?
Base de données bois : http://yattdb.pabuisson.com

Lundi 07 Avril 2014 13:45

Personnellement, dans mon idée je pense faire un CRON qui récupère ces données mensuellement et les intègre en base de données. Ça limiterai l'accès à cette API et permettrait à la fédé de me laisser tranquille ! Je ne comprend toujours pas que nous soyons obliger de ruser pour faire tout ça et que la fédé ne nous aide pas ...

Lundi 07 Avril 2014 13:50

Hello,

moi aussi j'ai sniffé toutes les URL XML de Smartping (via XCode sous Mac à partir de mon iphone) , mais je me suis cantonné à écrire du VBA sous Excel.
Mes quelques macros :
- Aspirateur du classement mensuel pour mon club (sauf que depuis ce mois-ci, Smartping ne donne plus accès au "Premium"Clin d'oeil
- Récap après chaque journée des compos et scores de toutes les équipes des poules dans lesquelles joue une équipe de mon club
- classement "enrichi" en anticipation du classement mensuel en exploitant aussi les matches du SPID (au coeff près)

Bref, des données libres d'accès sur Smartping, application gratuite ! A l'ère de l'Open Data, quand on voit les stats que sort pingpocket.fr, on peut en s'y mettant à plusieurs faire des applis / services Web bien meilleurs que ce que sort notre Fédé (dont çà n'est pas le métier principal, contrairement à certains d'entre nous :-)

Quand on voit que l'ITTF s'appuie sur des contributeurs "privés" comme Geca pour faire produire des videos des résumés des Pro Tours, la FFTT devrait s'appuyer sur des développeurs externes pour enrichir son offre apps / Web !

Lundi 07 Avril 2014 13:52

Citation de robinos33 :
Personnellement, dans mon idée je pense faire un CRON qui récupère ces données mensuellement et les intègre en base de données. Ça limiterai l'accès à cette API et permettrait à la fédé de me laisser tranquille ! Je ne comprend toujours pas que nous soyons obliger de ruser pour faire tout ça et que la fédé ne nous aide pas ...

Je suis bien d'accord avec toi, il faudra que je me fasse quelque chose dans ce style là aussi. D'autant que je ne sais pas quel est l'intérêt de la fédé à diriger tout le monde vers leur propre appli, étant donné qu'elle est gratuite et qu'il ne se font pas d'argent là-dessus (en plus d'être vieillotte, incroyablement buggée et donc de ne pas véhiculer une super image...mais bref, passons). Si encore elle était payante ou sponsorisée par de la pub, on pourrait comprendre cette façon de faire, mais là...
Base de données bois : http://yattdb.pabuisson.com

Lundi 07 Avril 2014 13:53

Citation de Tranbert :
moi aussi j'ai sniffé toutes les URL XML de Smartping (via XCode sous Mac à partir de mon iphone) , mais je me suis cantonné à écrire du VBA sous Excel.
Mes quelques macros :
- Aspirateur du classement mensuel pour mon club (sauf que depuis ce mois-ci, Smartping ne donne plus accès au "Premium"Clin d'oeil
- Récap après chaque journée des compos et scores de toutes les équipes des poules dans lesquelles joue une équipe de mon club
- classement "enrichi" en anticipation du classement mensuel en exploitant aussi les matches du SPID (au coeff près)

Alors ça c'est une fameuse idée Émoticône
Base de données bois : http://yattdb.pabuisson.com

Lundi 07 Avril 2014 14:03

Je fais ça régulièrement à la mano pour une ou deux de nos équipes et c'est particulièrement fastidieux...

Lundi 07 Avril 2014 14:31

Citation de archeo :
Je fais ça régulièrement à la mano pour une ou deux de nos équipes et c'est particulièrement fastidieux...

Moi aussi. Pour mon équipe, en fait, mais si j'ai moyen d'automatiser ça facilement, ça peut être intéressant.
Base de données bois : http://yattdb.pabuisson.com

Mardi 08 Avril 2014 00:10

Bon j'ai passé l'aprem là-dessus finalement. Je suis en train de revoir la structure de ma base pour pouvoir y intégrer de nouvelles données, et j'ai adapté le code fourni par SMGbab16 (notamment la partie caching) pour pouvoir intégrer ça au site de mon club, en PHP maison et 5.1 seulement Pleurer

J'ai déjà pu mettre en place la récupération automatique des mises à jour des classements, et demain je m'occupe de l'ajout de nouvelles stats individuelles (pourcentage de victoires, et stats sur les matchs joués).

\o/
Message modifié 2 fois, dernière modification Mardi 08 Avril 2014 00:11 par pierread
Base de données bois : http://yattdb.pabuisson.com

Mardi 08 Avril 2014 00:20

Citation de robinos33 :
Personnellement, dans mon idée je pense faire un CRON qui récupère ces données mensuellement et les intègre en base de données. Ça limiterai l'accès à cette API et permettrait à la fédé de me laisser tranquille ! Je ne comprend toujours pas que nous soyons obliger de ruser pour faire tout ça et que la fédé ne nous aide pas ...


Oui j'avais dans l'idée de faire ça aussi à terme. En plus de ne plus avoir a interroger le webservice de la fftt à chaque fois ça permettrait de garder les données d'une saison sur l'autre et d'avoir tout un historique pour faire des stats ou simplement retrouver d'anciennes feuilles de match par nostalgie. On pourrait même imaginer un site communautaire avec possibilité de mettre des commentaires sur les résultat des rencontres etc... ^^
C'est quand même un travail assez conséquent. Il faudrait d'abord bien définir le model de donnée pour bien structurer tout ca, etc... Mais bon c'est un projet interessant sur lequel on pourrait travailler à plusieurs.

En ce qui concerne le risque que la FFTT ferme cet accès je pense qu'il est assez minime car cela empêcherait Smartping de fonctionner. Ensuite contrairement aux pages HTML, ils ne peuvent pas simplement modifier le webservice sans impacter Smartping. Toute modification du webservice doit s'accompagner d'une mise à jour de Smartping ce qui limite les choses.

Pour mon code je n'ai pas précisé mais c'est du PHP5.3 (namespace, closure, ...)
Je suis un fan de Symfony2 et de Doctrine2 dont j'utilise une toute petite partie pour le caching (mais c'est optionnelle ^^).
Sinon il y a une petite correction à apporter a mon code pour récupérer la dernière situation mensuelle:
Ligne 34 il faut remplacer:
Citation de _ :
return Service::getObject(Service::getData('http://www.fftt.com/mobile/xml/xml_joueur.php', array('licence' => $licence)), 'joueur');

par
Citation de _ :
return Service::getObject(Service::getData('http://www.fftt.com/mobile/xml/xml_joueur.php', array('licence' => $licence, 'auto' => 1)), 'joueur');

En gros il faut rajouter le parametre auto=1 dans l'url.
Pour voir la difference: http://www.fftt.com/mobile/xml/xml_joueur.php?licence=9416257
et
http://www.fftt.com/mobile/xml/xml_joueur.php?licence=9416257&auto=1
Message modifié 2 fois, dernière modification Mardi 08 Avril 2014 00:21 par SMGbab16

Mardi 08 Avril 2014 01:02

Je viens de regarder pingpocket.fr je ne connaissais pas, c'est vraiment pas mal!
Et assez proche de ce que je suis en train de faire au final xD
A part qu'il n'y a pas toute la partie Compétition.
Quelqu'un sait si ça exploite le webservice de Smartping ou alors le parsing du HTML sur le site de la FFTT ?

Mardi 08 Avril 2014 06:21

Citation de SMGbab16 :
Quelqu'un sait si ça exploite le webservice de Smartping ou alors le parsing du HTML sur le site de la FFTT ?

Les données sur le site Pingpocket sont celles du mois dernier, on peut donc penser qu'il s'agit des données issues du site de la FFTT. A vérifier après le 10 avril s'il y a bien une mise à jour.

Mardi 08 Avril 2014 20:38

J'ai une mauvaise nouvelle Émoticône

Bonjour,

Devant le développement d’outils de récupération massive des données du classement, Smartping s’aligne sur le calendrier de parution gratuite.
Les utilisateurs de Smartping n’auront plus accès aux informations « premium ».

Salutations,

Eric Caugant
Responsable Informatique

Mardi 08 Avril 2014 21:26

Citation de archeo :
J'ai une mauvaise nouvelle Émoticône

Bonjour,

Devant le développement d’outils de récupération massive des données du classement, Smartping s’aligne sur le calendrier de parution gratuite.
Les utilisateurs de Smartping n’auront plus accès aux informations « premium ».

Salutations,

Eric Caugant
Responsable Informatique

Ça semble assez logique. Pour info, où as-tu eu accès à cette news ? Il y a un site/blog où la FFTT communique sur son IT ?
Base de données bois : http://yattdb.pabuisson.com

Mardi 08 Avril 2014 21:31

Non, ça fait suite au mail dans lequel je m'inquiétais que Smartping ne soit pas à jour (cf topic sur les classements).
Et cet après midi, j'ai reçu ce message sans rien avoir demandé de plus suite à sa précédente réponse.

Mardi 08 Avril 2014 21:46

Citation de archeo :
Non, ça fait suite au mail dans lequel je m'inquiétais que Smartping ne soit pas à jour (cf topic sur les classements).
Et cet après midi, j'ai reçu ce message sans rien avoir demandé de plus suite à sa précédente réponse.

Ah ok, j'avais pas vu ce sujet sur les classements. Merci de ta rép Archeo !
Base de données bois : http://yattdb.pabuisson.com

Mardi 08 Avril 2014 23:58

Ca il fallait bien que ca arrive, indépendament du fait que les données de smartping soit aspirer ou pas...

Mercredi 09 Avril 2014 10:33

Stupide, ils ont vraiment rien compris ...
J'avais pensé à justement n'afficher aucune info "premium" pour ne pas être embêté. De toute manière, c'était pas le but ... Au moins, là, pas le choix ^^
Si ils ont du temps à perdre ...

Jeudi 10 Avril 2014 11:42

Je connaissais pas pingpocket, c'est vraiment très très bon.
13
18
381 messages

Vous êtes ici : Accueil > Forums > Développement de vos sites