Partage
  • Partager sur Facebook
  • Partager sur Twitter

[PHP] Skyl Team - Aide pour l'API de Destiny

    4 novembre 2015 à 16:33:02

    Bonjour à tous.

    Je me présente, SuperIntendant, administrateur et leader de la Skyl Team, une équipe de joueurs fun basée sur le jeu Destiny, MMOFPS futuriste sur consoles de salon.

    Je développe actuellement un site web (HTML/PHP/JS/CSS) pour cette équipe et je cherche de l'aide pour une intégration de l'API fournie par le studio, dans l'optique de récupérer les données des personnages des membres ainsi qu'afficher armes/inventaires de vendeurs/etc... sur les pages dédiées à cet effet.

    Le problème c'est que je n'ai aucune connaissance en gestion d'API de ce genre... et le peu de documentation que je trouve n'est jamais vraiment complète à mon sens... mais peut-être que c'est parce-que je ne m'y connais pas assez.

    L'API est majoritairement développée en JSON d'après ce que j'ai pu observer, je comprends le langage mais je ne le maîtrise pas encore très bien, voir même très basiquement.

    Je cherche de l'aide bénévole. Je n'ai pas les moyens de payer un développeur professionnel.

    -
    Edité par SuperIntendant 26 août 2016 à 13:45:07

    • Partager sur Facebook
    • Partager sur Twitter
      4 novembre 2015 à 18:18:10

      Yo,

      Je suis déjà sur des projets mais je t'écris pour te dire que le json c'est ultra simple !

      Si ce sont des urls que l'api te donne tu as juste à faire  :

      $json = file_get_contents('http://urldelapi');
      $aArray = json_decode($json);

      Et ton array contient les champs du json exemple $aArray['statistiques'].

      J'espère t'avoir un peu aidé et pas dit quelque chose que tu savais déjà :p

      Bon courage ;)

      ++

      • Partager sur Facebook
      • Partager sur Twitter
      Découvre tout le background de leagueoflegends sur omégatheque ! Il y a même des vidéos sur les différents skins, des liens vers les streamers et webtvs les plus connus ! :D
        5 novembre 2015 à 8:51:46

        Hmmm !!!

        Ok je vois. Je vais essayer de me débrouiller avec ça. Merci beaucoup.

        -
        Edité par SuperIntendant 5 novembre 2015 à 8:54:52

        • Partager sur Facebook
        • Partager sur Twitter
          6 novembre 2015 à 17:14:14

          Alors, j'ai regardé ce que vous m'avez fourni comme information, et en effet c'est très très proche de ce que Bungie a fait pour son API.

          Cependant, j'ai appris que certaines fonctions de l'API nécessitent une authentification pour l'utiliser, car c'est une clé API privée. Mais je ne comprends pas bien quel type d'authentification il faut utiliser...

          Pouvez-vous m'aider ?

          • Partager sur Facebook
          • Partager sur Twitter
            9 novembre 2015 à 14:26:42

            J'utilise les apis de Riot pour un site sur le jeu LoL, j'imagine que c'est le même principe. Avec Riot je dois ajouter un paramètre à l'url :

            http://url_de_lapi/methodeouautre?api_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'&criterederecherche='qfssgsd'

            Voilà en gros l'idée :)

            Je n'ai pas lu la doc de l'api de bungie mais j'imagine que c'est le même principe, tu dois ajouter à tes paramètres ta clé API. Ils ont sûrement une doc dans laquelle ils indique le nom du paramètre api_key ;) .

            Est-ce que cela t'aide ?

            -
            Edité par Lymke 9 novembre 2015 à 14:26:53

            • Partager sur Facebook
            • Partager sur Twitter
            Découvre tout le background de leagueoflegends sur omégatheque ! Il y a même des vidéos sur les différents skins, des liens vers les streamers et webtvs les plus connus ! :D
              18 août 2016 à 14:23:27

              Je déterre ce sujet car j'ai repris le développement de mon site récemment. Merci donc aux modérateurs d'être indulgents à ce sujet.

              Je ne sais pas si tu verras ce message, Lymke, mais en tout cas merci pour ton aide. Malheureusement l'API de Bungie semble fonctionner un tout petit peu différemment.

              J'essaye de récupérer les informations d'inventaire des PNJ, et il s'avère que pour accéder à ce genre d'information, il faut utiliser une "simulation" d'authentification PSN ou Xbox Live sur son site.

              Seulement... je ne comprends toujours pas comme intégrer cela dans mon propre projet... peut-être est-ce un peu au dessus de mes connaissances, ou alors je ne vois pas.

              J'ai fait des recherches et voici ce que j'ai trouvé comme exemple d'authentification. Je m'intéresse surtout au code PHP... vu que mon site est principalement dans ce langage.

              http://bungienetplatform.wikia.com/wiki/Authentication

              Je suis donc toujours à la recherche de passionnés de programmation Web pour m'aider à réaliser ce projet.

              -
              Edité par SuperIntendant 18 août 2016 à 14:24:21

              • Partager sur Facebook
              • Partager sur Twitter
                18 août 2016 à 17:14:17

                Salut, 

                Je vais commencer par te demander

                • L'adresse de ton site (la version déjà disponible)
                • Le lien vers la documentation de l'API que tu veux intégrer (Destiny si j'ai bien compris)
                • Utilises tu un framework pour développer? 
                • Sinon, utilises tu des bibliothèques tierces? 

                A partir de ces réponses (pas nécessairement à la première), il serait plus facile de te donner des pistes pour parvenir à tes fins en sachant où chercher, et/ou te rejoindre aussi

                • Partager sur Facebook
                • Partager sur Twitter
                En apprentissage continue....
                  20 août 2016 à 18:08:13

                  Salut Azeupaul !

                  Merci de ta réponse. Pour te répondre moi-même, voici :

                  - Adresse : http://skyl-team.shost.ca

                  - Documentation de l'API de Destiny (en fait y a deux liens, en anglais uniquement) :

                    https://www.bungie.net/fr/Clan/Forum/39966

                    http://bungienetplatform.wikia.com/wiki/Bungienetplatform_Wikia

                  - J'utilise uniquement Bootstrap, pas de framework PHP, car il y a très peu de code de ce langage sur mon site... donc j'ai pas trop eu l'idée d'en utiliser un.

                  - Pour les bibliothèques... ben j'utilise principalement du JQuery... mais je pense pas que ce soit en rapport avec l'API, vu qu'elle est elle, en JSON.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 août 2016 à 17:56:45

                    Il ne faut pas utiliser file_get_contents mais plutôt Curl, puisque tu dois envoyer des informations dans les entêtes des requêtes vers l'api Destiny. 

                    J'ai regardé l'api et en gros en PHP, tu dois procéder comme ça :

                    $key = 'Ta clé ici'; 
                    $url = 'https://www.bungie.net/platform/destiny/Vanguard/Grimoire/Definition/'; // Tu appels ici l'URL avec les services dont tu as besoin
                    
                    $curl = curl_init(); // Initialise curl
                    
                    curl_setopt($curl, CURLOPT_URL, $url); // Affecte l'url avec le contenu à récupérer
                    
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // True pour que le contenu te soit retourné
                    
                    curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-API-Key: ' . $key)); // Ajoute ta clé aux entêtes de la requête
                    
                    $return = curl_exec($curl); // Retourne true ou false
                    
                    if($return == FALSE): // Si curl_exec retourne faux
                        die(curl_error($curl)); // Affiche le message d'erreur et stop le script
                    endif;
                    
                    $json = json_decode($return); // Décode le fichier json reçu en objet php
                    
                    print_r($json); // Ici j'ai juste imprimé le contenu de $json, à toi d'accéder à ton objet en fonction de ce que tu auras besoin.
                    


                    Mais tu peux aussi faire des requêtes ajax à l'aide de jquery pour rendre tes pages un peu plus dynamiques :

                    var key = "Ta clé ici";
                    var link = "https://www.bungie.net/platform/destiny/Vanguard/Grimoire/Definition/";
                    $.ajax({ // Tu démarres ici ta requête 
                     url: link, // Url à appeler
                     headers: {
                      "X-API-Key": key // Tu définis
                     },
                     success : function(data){ // S'il n'y a pas d'erreurs    
                        console.log(Json.parse(data)); // Ici j'affiche juste le contenu de data dans la console en le transformant en objet
                    })
                    ;



                    -
                    Edité par Chiraq 22 août 2016 à 18:05:53

                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 août 2016 à 10:13:25

                      Merci beaucoup pour cette réponse. Alors en effet j'avais déjà pu obtenir quelques résultats... mais je bloque sur les endpoints qui sont privés.

                      Apparemment il faut "simuler" une connexion vers Bungie.net en Xbox Live (je ne suis pas sur Playstation).

                      J'aimerais par exemple obtenir l'inventaire d'un marchand.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 août 2016 à 10:16:21

                        Merci beaucoup pour cette réponse. Alors en effet j'avais déjà pu obtenir quelques résultats... mais je bloque sur les endpoints qui sont privés.

                        Apparemment il faut "simuler" une connexion vers Bungie.net en Xbox Live (je ne suis pas sur Playstation).

                        J'aimerais par exemple obtenir l'inventaire d'un marchand.

                        https://www.bungie.net/fr/Clan/Post/39966/98178115/0/0

                        (Si un modérateur pouvait supprimer le doublon du haut, j'avais des problèmes de connexion)

                        -
                        Edité par SuperIntendant 23 août 2016 à 10:22:27

                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 août 2016 à 16:10:49

                          J'ai trouvé en fin de compte ce que je cherchais. Merci pour votre essai d'aide en tout cas ^-^
                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 août 2016 à 13:40:14

                            Texte effacé

                            -
                            Edité par SuperIntendant 26 août 2016 à 14:06:32

                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 octobre 2016 à 22:32:10

                              Rebonjour à tous. 

                              J'ai réussi à faire un bout de chemin avec cette API, et merci d'ailleurs pour le début d'aide qui m'a été apporté. Seulement... maintenant je me heurt aux Private Endpoints, qui nécessitent une authentification Xbox Live (je ne suis pas sur PSN).

                              Il y a du code disponible en ligne pour simuler une authentification (lien-ci dessous) mais je ne vois pas du tout comment l'utiliser, et je ne trouve aucune documentation claire à ce sujet. Est-ce que quelqu'un pourrait m'éclairer afin de me débloquer ?

                              http://pastebin.com/pQTH7WR7 

                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 octobre 2016 à 10:46:20

                                Je déplace dans la section PHP vu que ce n'est plus vraiment du recrutement mais bien une demande d'aide.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Je ne suis plus modérateur, ne me contactez plus pour des demandes, je n'y répondrai pas.

                                  15 novembre 2016 à 8:10:13

                                  Bon... j'ai fait un test préliminaire en ajoutant la fonction d'authentification ainsi qu'une requête vers un point privé de l'API...

                                  http://pastebin.com/LjCUVYte

                                  var_dump($resultat); // Ceci me retourne un boolean(true) de la fonction web_auth(). 


                                  Mais je ne pense pas que je sois authentifié réellement... car aucun fichier de cookie ne se crée dans le répertoire où je met le fichier... et le point privé ne me retourne rien.

                                  $apiKey = 'mykey';
                                   
                                  $ch = curl_init();
                                  curl_setopt($ch, CURLOPT_URL, 'Lien vers un point privé de l\'API');
                                  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                                  curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-API-Key: ' . $apiKey));
                                   
                                  $vendor = json_decode(curl_exec($ch));
                                   
                                  $table = (array) $vendor->Response;
                                   
                                  echo "<pre>";
                                  var_dump($table);
                                  echo "</pre>";

                                  Bien sûr "mykey" est remplacé par ma clé API que j'ai sur mon compte... mais n'empêche que je n'arrive toujours pas à comprendre comment m'authentifier réellement sur le site de Bungie depuis cette fonction.

                                  Bungie a publié récemment un communiqué qui explique qu'est-ce qui doit être envoyé pour obtenir des résultats satisfaisants sur l'API... mais rien sur l'authentification... et personne sur la communauté officielle ne semble vouloir répondre à mes questions...

                                  https://www.bungie.net/fr/Clan/Post/39966/85087279/0/0 

                                  -
                                  Edité par SuperIntendant 15 novembre 2016 à 8:18:31

                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  [PHP] Skyl Team - Aide pour l'API de Destiny

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown