Aller au contenu

« Documentation de l'API Jeuxvideo.com » : différence entre les versions

→‎API v4 : Correction algo
(→‎API v4 : Correction algo)
Ligne 14 : Ligne 14 :
Où '''''header''''' est égal à une chaîne de charactère de cette forme : ''"PartnerKey='''<u>partner_key</u>''', Signature='''<u>signature</u>''', Timestamp='''<u>date</u>'''".'' (Voir section rétro-ingénierie pour plus d'information)
Où '''''header''''' est égal à une chaîne de charactère de cette forme : ''"PartnerKey='''<u>partner_key</u>''', Signature='''<u>signature</u>''', Timestamp='''<u>date</u>'''".'' (Voir section rétro-ingénierie pour plus d'information)


'''Voici un script [https://www.python.org/ python] qui construit la signature'''
'''Voici un script [https://www.python.org/ python] qui construit "''header''"'''
import hashlib
<pre>
from datetime import datetime
import hmac
import hashlib
api_version = 4
import datetime
partner_key = "550c04bf5cb2b"
date = datetime.utcnow().isoformat()
method = "POST"
signature = hashlib.sha256(f"{self.partner_key}\n{date}\n{method}\napi.jeuxvideo.com\n/v{self.api_version}/{path}".encode()).hexdigest()
header = f"PartnerKey={partner_key}, Signature={signature}, Timestamp={date}"


apiVersion = 4
partnerKey = '550c04bf5cb2b'
hmacSecret = 'd84e9e5f191ea4ffc39c22d11c77dd6c'
def createJvcAuthorizationHeader(method, path):
    # Étape 1 : Calcul de la date et de l'heure actuelles au format ISO
    date = datetime.datetime.utcnow().isoformat()
   
    # Étape 2 : Construction de la chaîne signatureStr
    signatureStr = f"{partnerKey}\n{date}\n{method}\napi.jeuxvideo.com\n/v{apiVersion}/{path}\n"
   
    # Étape 3 et 4 : Calcul de la signature HMAC SHA-256
    secret = bytes.fromhex(hmacSecret)
    signature = hmac.new(secret, signatureStr.encode('utf-8'), hashlib.sha256).hexdigest()
   
    # Étape 5 et 6 : Retour d'une chaîne formatée comme en-tête d'autorisation
    return f"PartnerKey={partnerKey}, Signature={signature}, Timestamp={date}"
method = 'GET'
apiPath = 'api/endpoint'
authorizationHeader = createJvcAuthorizationHeader(method, apiPath)
print(authorizationHeader)
</pre>
== API endpoints ==
== API endpoints ==
{{BoxNotice|Aucun des endpoints n'a été testé pour l'instant, si vous remarquez qu'une information est erronée ou si vous êtes assez compétent en programmation pour nous aider à complèter la documentation, n'hésitez pas à venir sur le [https://discord.gg/wKBSHv2mdU discord de Jvflux] ou à me contacter en message privé sur [https://onche.org/profil/christianronald Onche]}}
{{BoxNotice|Aucun des endpoints n'a été testé pour l'instant, si vous remarquez qu'une information est erronée ou si vous êtes assez compétent en programmation pour nous aider à complèter la documentation, n'hésitez pas à venir sur le [https://discord.gg/wKBSHv2mdU discord de Jvflux] ou à me contacter en message privé sur [https://onche.org/profil/christianronald Onche]}}
Kheys
1 092

modifications