11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour

Je développe un site pour mon clan et je cherche a récupérer les images de profil Xbox.
Je fait donc une requête JQuery pour récupérer l'image :

$.get('https://account.xbox.com/en-GB/Profile?GamerTag=GT', function(data) {
    var igmPerso = $('#gamerPicRawContainer>img').attr("src");
    console.log(igmPerso);
});


Or la console me renvoie ceci :

XMLHttpRequest cannot load  https://account.xbox.com/en-GB/Profile?GamerTag=GT  Redirect from 'https://account.xbox.com/en-GB/Profile?GamerTag=GT' to 'https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=13&ct=1497377865&rver=…g%253dAnthony06069&lc=2057&id=292543&cbcxt=0&lw=1&cobrandid=90011&fl=email' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.


De ce que j'ai compris, c'est une protection du côté de Xbox.com. On m'a déjà proposé d'utiliser des Json, sauf que je n'y connait rien (BTS SIO 1ere année) et je commence à peine les cours sur Ajax. On pourrait utiliser du PHP aussi ?
Est-ce que vous pouvez m'expliquer comment faire, avec la syntaxe à utiliser, comment utiliser un Json, ect... Je sais qu'il existe des tutos sur internet mais rien ne permet de résoudre mon problème.

Merci
Modifié par JulesRx (20 Oct 2018 - 18:30)
Modérateur
Bonjour, en plus pour récupérer ces images il faudrait être identifié.

Ce qui pourrait être le cas en ajax vu que l'appel se fait avec ta session mais c'est la raison pour laquelle ce genre de requête est interdite (c'est une protection globale par défaut, partout, qui peut néanmoins être outrepassée volontairement par le propriétaire du site).

En PHP il faudrait s'authentifier ce qui rend la chose complexe.

Normalement on utilise une API pour ce genre de choses ce que fournissent à peu près tous les acteurs sauf *Crosoft.

Il existe une API inofficielle mais je ne sais pas ce que ça vaut: https://xboxapi.com/
A priori ca doit pouvoir se faire en php oui.
En cherchant un peu, on trouve ca par exemple :
$user = 'username';
$pass = 'password';

    $url = 'url';

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_USERPWD,"$user:$pass");
    curl_setopt($ch, CURLOPT_HTTPGET, 1);

    $exec = curl_exec($ch);

    curl_close($ch);

Modifié par mathieu1004 (20 Jun 2017 - 15:25)
Modérateur
a écrit :
En cherchant un peu, on trouve ca par exemple

Sauf que ce n'est pas sûr qu'on puisse se connecter à xbox avec une basic auth HTTP… (et très probablement non). C'est donc probablement beaucoup plus complexe.