Récupérer le nom de compte

Inscrit
27 Octobre 2019
Messages
4
Reactions
0
#1
Bonsoir,

Je me permet de poser ma question sur ce forum car vous semblez être spécialisé dans dofus.

Donc j'ai un simple script en python qui envoie une requête post vers "https://haapi.ankama.com/json/Ankama/v2/Api/CreateApiKey" se qui me permet de vérifier la validité du compte ou non.
Maintenant je souhaite récupéré le nom de compte ankama (celui qui permet d'accéder à la page perso), mais je ne trouve aucune indication sur ou je peux trouver cette information, et d'abord, est-ce que c'est possible déjà de récupéré ce genre d'information uniquement en requête GET/POST? Ou est-ce que je dois simuler une connexion comme vous le faites pour vos bots?

Merci à vous, j'ai essayé d'être le plus explicite possible malgré mes compétences limité dans le domaine.
 
Dernière édition:
Inscrit
5 Novembre 2016
Messages
56
Reactions
2
#2
je te conseil de simuler une connexion, et pendant la connexion, tu analyses les packets envoyé (avec wireshirk par exemple) , et tu trouveras le nom du compte
 
Inscrit
21 Février 2012
Messages
81
Reactions
5
#3
Utilise Lindo, active le devtool et va dans l'onglet network :teeth:
 
Inscrit
24 Février 2018
Messages
4
Reactions
2
#4
Il faut faire une requête de type POST.
D'ailleurs je rencontre des problèmes avec cette requête que je n'ai jamais rencontré avant.
Lorsque que je fait la requête que ça soit en Java, Python, Ruby ou via curl (sur windows) j'ai toujours l'erreur 403 venant de cloudflare qui lui me renvoie une erreur 1020. Si j’exécute mon code sur linux aucun problème. Par contre la même requête en JS sur windows/linux ça fonctionne. Vous avez déjà rencontré ce problème ?

Edit : Une explication de comment bypass la sécu cloudflare ici
 
Dernière édition:
Inscrit
8 Aout 2019
Messages
11
Reactions
0
#5
Il faut faire une requête de type POST.
D'ailleurs je rencontre des problèmes avec cette requête que je n'ai jamais rencontré avant.
Lorsque que je fait la requête que ça soit en Java, Python, Ruby ou via curl (sur windows) j'ai toujours l'erreur 403 venant de cloudflare qui lui me renvoie une erreur 1020. Si j’exécute mon code sur linux aucun problème. Par contre la même requête en JS sur windows/linux ça fonctionne. Vous avez déjà rencontré ce problème ?

Une explication de comment bypass la sécu cloudflare ici
Oui j'avais déjà eu ce soucis il y a quelques mois, aucune idée pour le coup, j'avais fais un appel via JS qui renvoyais le contenu a mon bot une sorte de "client esclave"
 
Inscrit
24 Février 2018
Messages
4
Reactions
2
#6
@devenv Yes j'ai fait la même du coup mais j'ai trouvé un moyen de le bypass. J'ai edit mon ancien commentaire pour le lien.
Si y en a qui essaye en python directement avec request vous devriez avoir le même problème. Go utiliser https://github.com/Anorov/cloudflare-scrape. Il en existe aussi pour ruby et java sur github, à vos recherche. Bon j'arrête le HS.
 
Inscrit
27 Octobre 2019
Messages
4
Reactions
0
#8
Ah parfait,
Je viens de regarder le topic et merci à toi DevChris pour le lien.
C'est exactement ce que je voulais, merci à toi!

Voici quelques partie de mon code en python pour ceux que ça peut aider :

Connexion :
Code:
login_data={
        "login":sUserMail,
        "password":sUserPass,
        "long_life_token":"false"
        }      
        headers = {
        'Host':'haapi.ankama.com',
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
        'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language':'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
        'Accept-Encoding':'gzip, deflate, br',
        'Content-Type':'application/json',
        'X-Requested-With':'XMLHttpRequest',
        'Connection':'keep-alive',
        }
        oData = oRequest.post("https://haapi.ankama.com/json/Ankama/v2/Api/CreateApiKey",data=login_data,headers=headers,verify=False,timeout=30,proxies=proxies)
Récupération Apikey :
Code:
# API
                try:
                    apikey = re.findall(re.escape('{"key":"')+"(.*)"+re.escape('","account_id":'),s)[0]
                    #print apikey
                except:
                    apikey = "-"
                    print "Api key non detecte!"
                    pass
                # API
Récupération nom de compte :
Code:
# Compte
                headerss = {
                'Host':'haapi.ankama.com',
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
                'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                'Accept-Language':'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3',
                'Accept-Encoding':'gzip, deflate, br',
                'Content-Type':'application/json',
                'X-Requested-With':'XMLHttpRequest',
                'Connection':'keep-alive',
                'apikey':apikey
                }
                oData = oRequest.get("https://haapi.ankama.com/json/Ankama/v2/Account/Account",timeout=30,verify=False,headers=headerss,proxies=proxies)
                s = oData.text.encode("utf8")
                #print s
                try:
                    pseudo = re.findall(re.escape('"nickname":"')+"(.*)"+re.escape('","security"'),s)[0]
                    print pseudo
                except:
                    pseudo = "-"
                    print "Aucun pseudo trouve!"
                    pass
                # Compte
 
Inscrit
27 Octobre 2019
Messages
4
Reactions
0
#9
J'ai une nouvelle demande, avez-vous un lien pour récupéré la liste des personnages et/ou des serveurs, voir même de voir les kamas?

Merci.
 

MaSTeR

Contributeur
Inscrit
20 Septembre 2016
Messages
32
Reactions
11
#10

DevChris

Membre Actif
Inscrit
12 Avril 2017
Messages
138
Reactions
24
#11
Inscrit
27 Octobre 2019
Messages
4
Reactions
0
#12
À ma connaissance non, ou alors l'entête WWW-Authentificate est nécessaire.
Tu peux passer par ça pour la liste des personnages -> https://account.ankama.com/fr/profil-ankama/<Nickname>/dofus
Salut,
C'est ce que je fais actuellement cependant pour les comptes ne s'étant pas connecté depuis longtemps, les personnages ne s'affichent pas.

Quelqu'un à une solution?
Merci.
 
Inscrit
6 Juillet 2017
Messages
8
Reactions
6
#14
crimeflare.org by pass le Cloudfare get the Ip of anakam.com directly
then just find haapi URL on that IP using subdomain scanners
 

razzi

Membre
Inscrit
5 Mai 2022
Messages
4
Reactions
3
#16
hello, je me permets de up ce sujet parce que j'ai un problème similaire avec Cloudflare : je reçois systématiquement une erreur 403 quand je tente de récupérer l'API key. voici mon code (en python) :

Code:
#recupère le cookie cf_bm
def get_cfbm():
    request = urllib.request.urlopen("https://proxyconnection.touch.dofus.com/config.json?")
    return re.search(r"bm=(?P<cfbm>.*?);", request.headers.as_string(), re.DOTALL).group('cfbm')
Code:
#création d'une requete post
scraper = cloudscraper.create_scraper()
def CreateApiKey():

    data = "login=XXX&password=XXX&long_life_token=false&game_id=18"
    Cookie = '__cf_bm='+get_cfbm()

    Headers = {'authority':'haapi.ankama.com',
               'accept': 'application/json',
               "accept-encoding": "gzip, deflate, br",
               "accept-language": "fr",
               'user-agent': 'Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LMY48C; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.133 Mobile Safari/537.36',
               'content-length': str(len(data)),
               'content-type': 'text/plain;charset=UTF-8',
               'sec-fetch-site':'cross-site',
               'sec-fetch-mode': 'cors',
               'sec-fetch-dest': 'empty',
               'accept-language': 'fr',
               'cookie':Cookie
               }

    req = scraper.post("https://haapi.ankama.com/json/Ankama/v5/Api/CreateApiKey", headers=Headers, data=data.encode())
    return req

je ne comprend pas bien où est le problème, cloudscrapper devrait justement éviter l'erreur 403
 
Inscrit
18 Mai 2021
Messages
2
Reactions
0
#17
hello, je me permets de up ce sujet parce que j'ai un problème similaire avec Cloudflare : je reçois systématiquement une erreur 403 quand je tente de récupérer l'API key. voici mon code (en python) :

Code:
#recupère le cookie cf_bm
def get_cfbm():
    request = urllib.request.urlopen("https://proxyconnection.touch.dofus.com/config.json?")
    return re.search(r"bm=(?P<cfbm>.*?);", request.headers.as_string(), re.DOTALL).group('cfbm')
Code:
#création d'une requete post
scraper = cloudscraper.create_scraper()
def CreateApiKey():

    data = "login=XXX&password=XXX&long_life_token=false&game_id=18"
    Cookie = '__cf_bm='+get_cfbm()

    Headers = {'authority':'haapi.ankama.com',
               'accept': 'application/json',
               "accept-encoding": "gzip, deflate, br",
               "accept-language": "fr",
               'user-agent': 'Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LMY48C; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.133 Mobile Safari/537.36',
               'content-length': str(len(data)),
               'content-type': 'text/plain;charset=UTF-8',
               'sec-fetch-site':'cross-site',
               'sec-fetch-mode': 'cors',
               'sec-fetch-dest': 'empty',
               'accept-language': 'fr',
               'cookie':Cookie
               }

    req = scraper.post("https://haapi.ankama.com/json/Ankama/v5/Api/CreateApiKey", headers=Headers, data=data.encode())
    return req

je ne comprend pas bien où est le problème, cloudscrapper devrait justement éviter l'erreur 403
Je retrouve le même problème avec cloudscraper, j'ai créé un projet for fun il y a un an pour scrapper les données sur le ladder Kolizeum ça fonctionnait bien mais apparemment ankama ont du refaire une passe sur leurs process anti-scraping, pour moi je reçois cette erreur : "detected a cloudflare version 2 challenge"
 
Inscrit
14 Mai 2021
Messages
2
Reactions
0
#18
hello, je me permets de up ce sujet parce que j'ai un problème similaire avec Cloudflare : je reçois systématiquement une erreur 403 quand je tente de récupérer l'API key. voici mon code (en python) :

Code:
#recupère le cookie cf_bm
def get_cfbm():
    request = urllib.request.urlopen("https://proxyconnection.touch.dofus.com/config.json?")
    return re.search(r"bm=(?P<cfbm>.*?);", request.headers.as_string(), re.DOTALL).group('cfbm')
Code:
#création d'une requete post
scraper = cloudscraper.create_scraper()
def CreateApiKey():

    data = "login=XXX&password=XXX&long_life_token=false&game_id=18"
    Cookie = '__cf_bm='+get_cfbm()

    Headers = {'authority':'haapi.ankama.com',
               'accept': 'application/json',
               "accept-encoding": "gzip, deflate, br",
               "accept-language": "fr",
               'user-agent': 'Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LMY48C; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.133 Mobile Safari/537.36',
               'content-length': str(len(data)),
               'content-type': 'text/plain;charset=UTF-8',
               'sec-fetch-site':'cross-site',
               'sec-fetch-mode': 'cors',
               'sec-fetch-dest': 'empty',
               'accept-language': 'fr',
               'cookie':Cookie
               }

    req = scraper.post("https://haapi.ankama.com/json/Ankama/v5/Api/CreateApiKey", headers=Headers, data=data.encode())
    return req

je ne comprend pas bien où est le problème, cloudscrapper devrait justement éviter l'erreur 403
Salut, pour la requête /Ankama/v5/Api/CreateApiKey il faut utiliser http/2 et la lib requests ne supporte que le protocole http/1.
 
Haut Bas