Webservice Smartping - Page 18

Lundi 24 Août 2015 14:54

Citation de crab38 :
Oui, il retourne les noms des 2 équipes, testé et approuvé ^^


Peux-tu m'envoyer la partie de ton code pour récupérer l’équipe a et l'équipe B ?

Car je séche là .. je vois pas quoi changer d'autre à part "equa" en "equb".

Merci d'avance

Lundi 24 Août 2015 18:47

if (initialisationAPI() == 1) {
$D1 = 4601;
$cx_poule = 15607;
$param = "action=&auto=1&D1=".$D1."&cx_poule=".$cx_poule;
$result1 = connexionAPI('xml_result_equ', $param);
$tours = simplexml_load_string($result1);
foreach($tours as $value)
{
$libelle = $value->libelle;

$arr = explode(" ",$libelle);
$poule = $arr[1];
$tour = $arr[5];
$date = $arr[7];
$tabDate = explode('/', $date);
$date = "20".$tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0];

$equa = $value->equa;
$equb = $value->equb;
$scorea = $value->scorea;
$scoreb = $value->scoreb;
$lien = $value->lien;

$s .= "poule : $poule | tour : $tour | $date </br>";
$s .= "équipe A : $equa | score : $scorea | équipe B : $equb | score : $scoreb </br>";
$result2 = connexionAPI('xml_chp_renc', $lien);
$resultats = simplexml_load_string($result2);
foreach($resultats as $value)
{
$equa = $value->equa;
$equb = $value->equb;
$resa = $value->resa;
$resb = $value->resb;
$s .= "$equa | $equb | $resa | $resb</br>";
}
$s .= "--------------</br>";
$s .= "</br>";
}

} else {
$s .= "Connexion aux API refusée";
}
echo $s;

Lundi 24 Août 2015 19:28

Merci mimi,

J'ai trouvé moi même au final, en faite je récupéré le lien sous cette forme:

is_retour=0&phase=1&res_1=&res_2=&renc_id=2928266&equip_1=CHARLEVILLE+MEZIERES+ATT+2&equip_2=JEUMONT+PPC+1&equip_id1=348099&equip_id2=348106

et c'est les "+" entre les villes qui m'empêché de recevoir le reste.

Mardi 25 Août 2015 11:26

Bon, comme convenu j'ai repris entièrement la class de SMGbab16 pour qu'elle fonctionnent avec les nouvelles API. Les fonctions initiales portent le même nom, nécessitent les mêmes entrées et renvoient les même résultats. La seule chose que je n'ai pas fait (faute de connaissance) c'est la mise en cache des infos (avis aux amateurs!).
Et j'ai rajouté les nouvelles fonctions (historiques, actu, licences spid, épreuves indiv, ...)
Donc je vous laisse tester et éventuellement améliorer!

C'est ici: http://pastebin.com/RNDysYyA
Message modifié 1 fois, dernière modification Mardi 25 Août 2015 11:28 par crab38

Mardi 25 Août 2015 17:52

Ça a lair super mais si qqun pouvait expliquer comment s en servir ça serait génial!

Mardi 25 Août 2015 20:26

Mon problème était bien un problème d'identification.
Ceci dit les problèmes ne sont pas terminés, un résolu et d'autres apparaissent !

Mercredi 26 Août 2015 09:16

Citation de leevf :
Ça a lair super mais si qqun pouvait expliquer comment s en servir ça serait génial!

Humm... Si tu n'as pas le moindre connaissance en php, il faut oublier. Mais avec un minimum de connaissance, un peu de travail et grace à google tu peux y arriver !
Sinon je te laisse parcourir ce sujet où de nombreuses infos sont disponibles pour bien débuter.

Mercredi 26 Août 2015 10:28

Citation de leevf :
Ça a lair super mais si qqun pouvait expliquer comment s en servir ça serait génial!


Salut ,

Tout d'abord, crée toi un fichier appelé API_FFTT. Dedans, tu colles le code fourni par Crab. Ensuite, dans ce code tu modifies les informations MDP et ID qui te sont personnels.

Sur une autre page PHP, par exemple tu veux lister les équipes de ton club. Tu indiques que tu vas utiliser la classe API_FFTT, puis tu utilises les fonctions proposées.

Exemple:

<?php
include("API_FFTT.php"Clin d'oeil; //appelle class API FFTT

$connexion = new API_FFTT();
$affichage_club_departement = ($connexion->getClubsByDepartement(59)); //Liste les clubs du Nord.

print_r($affichage_club_departement); // affiche l'écran.
?>
Voilà

Mercredi 26 Août 2015 10:30

Le site avance doucement avec les autorisations !!
www.ppcjeumont.fr

Prochaine étape , commencer à mettre en cache

Mercredi 26 Août 2015 11:14

Toutes tes infos sont prises via les API (genre les équipes)? Car chez nous, les équipes départementales ne sont pas encore sorties (chez nous on ne voit qu'un équipe apparaitre ;( )...

Sinon je me pose des questions sur la mise en cache des infos. L'avantage st la rapidité, mais l’inconvénient est la perte du dynamisme des mises à jour après le championnats par équipe où toutes les infos sont entrée au fur et a mesure du week-end.

Mercredi 26 Août 2015 11:27

Citation de crab38 :
Toutes tes infos sont prises via les API (genre les équipes)? Car chez nous, les équipes départementales ne sont pas encore sorties (chez nous on ne voit qu'un équipe apparaitre ;( )...


Oui oui tout est pris via les API là; on voit même une erreur de la fédération en mettant 2 fois une équipe 6 et donc aucune équipe 7.

Mercredi 26 Août 2015 11:44

Ils sont long chez nous alors pour faire les équipes Pleurer
Tu passe par quelle fonction pour l'affichage des nouveaux résultats?
Message modifié 1 fois, dernière modification Mercredi 26 Août 2015 11:54 par crab38

Mercredi 26 Août 2015 11:59

D'abord j'appelle mes équipes avec xml_equipe; ensuite j'utilise xml_result_equ pour afficher la poule et les différents matchs , puis après j'utilise xml_chp_renc pour la feuille de match.

Mercredi 26 Août 2015 12:23

Citation de guigui591012 :
Citation de leevf :
Ça a lair super mais si qqun pouvait expliquer comment s en servir ça serait génial!


Salut ,

Tout d'abord, crée toi un fichier appelé API_FFTT. Dedans, tu colles le code fourni par Crab. Ensuite, dans ce code tu modifies les informations MDP et ID qui te sont personnels.

Sur une autre page PHP, par exemple tu veux lister les équipes de ton club. Tu indiques que tu vas utiliser la classe API_FFTT, puis tu utilises les fonctions proposées.

Exemple:

<?php
include("API_FFTT.php"Clin d'oeil; //appelle class API FFTT

$connexion = new API_FFTT();
$affichage_club_departement = ($connexion->getClubsByDepartement(59)); //Liste les clubs du Nord.

print_r($affichage_club_departement); // affiche l'écran.
?>
Voilà



Merci, ça va m'aider pour commencer.
Faut déjà que je demande les codes a la FFTT.

Mercredi 26 Août 2015 14:58

Pb sur la fonction connexion (pas de sérial donc pas de connexion). Voici la bonne version:

Citation de :

public function connexionAPI($api, $params = null){
$ID = "MON_ID";
$cle = md5("MON-PASS" );
$tm = round(microtime(true)*1000); // timestamp en ms
$tmEntier = sprintf("%.0f", $tm); // pour ne pas avoir de notation scientifique
$tmc = hash_hmac("sha1",$tmEntier,$cle); // timestamp codé
$serie = (empty($_SESSION["API"])) ? $this->random_str(15) : $_SESSION["API"];
$_SESSION["API"] = $serie;
$url = 'http://www.fftt.com/mobile/pxml/'.$api.'.php?serie='.$serie.'&tm='.$tmEntier.'&tmc='.$tmc.'&id='.$ID;

if (!empty($params)) {
$url .= '&' . http_build_query($params);
}

$result_xml = simplexml_load_string(file_get_contents($url));
return json_decode(json_encode($result_xml), true);
}

Message modifié 3 fois, dernière modification Mercredi 26 Août 2015 14:59 par crab38

Mercredi 26 Août 2015 17:59

Hello

Voici la nouvelle version de ma class pour les API v2
http://pastebin.com/FF1GHdMz

Il manque quelques nouvelles API (xml_licence_b, xml_res_cla et xml_new_actu) mais la principale à mon goût est dispo: xml_histo_classement

Pour l'utiliser c'est assez simple:

Citation de :

use Mping\CoreBundle\Fftt;

$api = new Service('ID_APPLICATION', 'MOT_DE_PASSE');
$api->setSerial(Service::generateSerial());
$api->initialization();

$api->getJoueur('xxx');


D'après la doc de la FFTT il faut attribué un serial par utilisateur donc vous devrez faire quelque chose comme ca:

Citation de :

if (empty($_SESSION['serial'])) {
$_SESSION['serial'] = Serial::generateSerial();
}

$api->setSerial($_SESSION['serial']);


Je vous met également la class que j'utilise pour mettre en cache les données: http://pastebin.com/98U2uaaT
Par contre la class utilise Doctrine donc ce n'est pas forcement simple à utiliser si vous ne connaissez pas Doctrine. Mais ca donne quand meme une idée de comment mettre en cache les données de l'API avec ma class:

Citation de :

$cache = new DatabaseCache($doctrine, 'cache_fftt');
$api->setCache($cache);
Message modifié 2 fois, dernière modification Mercredi 26 Août 2015 18:00 par SMGbab16

Vendredi 28 Août 2015 12:19

Pour info une nouvelle version de la spécification de l'API est en ligne :
http://www.fftt.com/medias/contenus/FFTT_Specifications_techniques_de_API_Smartping_2.0.pdf

Lundi 31 Août 2015 16:43

grrr, j'avais fait tout un post qui ne s'est pas affiché...
Bref, merci pour avoir refait ta class SMGbab16, je vais l'utiliser car elle est mieux que ce que j'ai pondu, avec toutefois quelques petites modifs pour n'avoir qu'a faire un remplacement de la classe, et rien ajouter au code initial.

Lundi 07 Septembre 2015 20:35

Citation de :
Merci mais ce n'est pas si facile que ça à utiliser pour un néophyte...

j'ai créé un fichier API_FFTT.php , j ai mis mes codes de connection
je l ai up sur mon site
j ai créé un fichier de test.php , je l ai up

qd j appelle le fichier de test ça me donne ça :

Fatal error: Class 'Service' not found in /home/cttcogol/www/test.php on line 4

Émoticône

Jeudi 10 Septembre 2015 21:13

personne ? help!
13
18
381 messages

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