Website API Token wird nicht neu generiert

12/11/2021 21:49 Mad0ck#1
Schönen Abend,

Ich hätte ein Anliegen bei welchem ich aktuell nicht wirklich weiter weiß.

Ich versuche auf einer Website automatisiert Promocodes einzulösen.
Dies funktioniert an sich auch. Jedoch nur für einen aktiven Durchgang.

Ich benötige für den Post-Request einen ApiToken, welchen ich auch problemlos via get-request auslesen kann.

Wenn ich mehrere Einträge in meinem Json File habe, werden direkt nacheinander mehrere POST-Requests verschickt.
(Je Eintrag, 1 Request)

Dadurch sich der Token jedoch nicht während der Loop ändert (bzw. einfach auf der Website/in der Session ge-updated wird), schlagen alle Einträge > 1.

Ich benutze Python mit dem Requests Modul.

Code Snippets:

PHP Code:

html 
self.sendRequest(self.config['url']+'account/promocode')
soup BeautifulSoup(html.content'html.parser')
api_token soup.find_all('input')[-1]['value']


data={ 
'code':self.config['promocode'],
'character':self.userData[idx]['account']
}

html_resp self.sendRequest(self.config['url']+'api/account/promocode/redeem?api_token='+api_tokendata=data
Der code läuft in ner loop, und ich schätze das hier auch das Problem liegt weil die Session nicht sauber beendet bzw. aktualisiert wird.

Der APIToken wird dadurch auch nicht aktualisiert.
session.destroy("url") funktioniert jedenfalls nicht...


Bin über jeden Tipp/Rat dankbar :)
12/11/2021 23:23 False#2
Da hier keine Seite erwähnt wird, wird es schwer zu helfen.
Aber wie du schon geschrieben hast wird es daran liegen das der Token nicht aktualisiert wird.

Das Problem zu lösen sollte relativ leicht sein, mach das was du im Code machst auf der Webseite und prüf dann wie die sich verhält und bau genau das nach.
12/12/2021 16:34 Mad0ck#3
Quote:
Originally Posted by False View Post
Da hier keine Seite erwähnt wird, wird es schwer zu helfen.
Aber wie du schon geschrieben hast wird es daran liegen das der Token nicht aktualisiert wird.

Das Problem zu lösen sollte relativ leicht sein, mach das was du im Code machst auf der Webseite und prüf dann wie die sich verhält und bau genau das nach.
Servus,
Danke für deine Antwort!


Wie du bereits schriebst war das Problem verhältnismäßig leicht zu lösen.

Ursache warum der APIToken bei mir im Script nicht aktualisiert wurde war, dass ich mehrere Requests für verschiedene Accounts in scheinbar der gleichen Session verschickt habe.
(Trotz loggout, von der website, und zusätzliches terminieren der session...)


Gelöst habe ich es letztendlich, dass ich nun pro Account eine eigene Klasse instanziiere, und nicht nur einmal, und darin durch das JsonFile mit den Accountdaten loope :)

Vermutlich ist dies auch so die richtige Methode sowas zu machen ^^

#closerequest