Utiliser le renderer d'ankama

Inscrit
16 Mars 2014
Messages
214
Reactions
30
#1
Yo alors voila j'essaye d'afficher des personnages de dofus sur mon site en utilisant le renderer d'ankama (ladders / page-perso) voici un exemple de lien


mais depuis mon site cela ne veut pas s'afficher ou s'affiche uniquement si j'ai déjà était visiter le lien en question et sinon en ouvrant l'image sur un nouveau onglet j'obtiens un access denied une fois sur deux, du coup je me demande si c'est mort ou si il existe un moyen de pouvoir utiliser le lien d'ankama sans avoir d'access denied

Je l'utilise comme ça sur mon site :
Code:
<img src='http://staticns.ankama.com/dofus/renderer/look/".bin2hex($entityLook)."/face/2/35_35-0.png'>
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#3
Dommage
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#4
Well if I understand your French the website don't allow the request, I fix this by download the image directly and later serve it (in the case of php)
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#5
Moi j'utilise toujours le lien avec mon bot, je télécharge l'image.
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#6
Well if I understand your French the website don't allow the request, I fix this by download the image directly and later serve it (in the case of php)
It's useless if do that lol, i need to do it dynamically
 

Lakh92

Membre Actif
Inscrit
24 Decembre 2009
Messages
118
Reactions
0
#7
Je crois que ce qu'il fait est dynamique. Il passe par son serveur pour télécharger l'image puis la sert au client directement. Et visiblement, il a plus de réussite que toi. Ce qui est bizarre c'est que dans les entêtes de la réponse il n'y a pas vraiment d'indication que ce que tu fais est interdit...
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#9
Et si tu regardait comment fait le SWF DofusPerso ?
Trop chiant :'(

Sinon la après plusieurs essai en téléchargeant l'image au lieu de l'afficher directement ça semble fonctionner
 
Inscrit
18 Février 2015
Messages
228
Reactions
7
#10
Trop chiant :'(

Sinon la après plusieurs essai en téléchargeant l'image au lieu de l'afficher directement ça semble fonctionner
XD Pourtant c'est ce qui marche le mieux et le plus fiable x)
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#11
PHP:
        $image = 'http://staticns.ankama.com/dofus/renderer/look/'.bin2hex($entityLookString).'/face/1/35_35-0.png';
        // Read image path, convert to base64 encoding
        $imageData = base64_encode(file_get_contents($image));

        // Format the image SRC:  data:{mime};base64,{data};
        $src = 'data: '.mime_content_type($image).';base64,'.$imageData;

        // Echo out a sample image
        echo '<img src="' . $src . '">';
Bon voila avec ce code ça marche :)
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#13
PHP:
        $image = 'http://staticns.ankama.com/dofus/renderer/look/'.bin2hex($entityLookString).'/face/1/35_35-0.png';
        // Read image path, convert to base64 encoding
        $imageData = base64_encode(file_get_contents($image));

        // Format the image SRC:  data:{mime};base64,{data};
        $src = 'data: '.mime_content_type($image).';base64,'.$imageData;

        // Echo out a sample image
        echo '<img src="' . $src . '">';
Bon voila avec ce code ça marche :)
file_get_contents

This download the image like I say in my previous comment xD

But it take many time to serve the image (sometimes simply don't work), it's better do a crud request and also save the result on a redis database (this is a approach from luaxy [Erezia forge api], I use it on azareth website when it was online and works really fine)
 
Inscrit
16 Mars 2014
Messages
214
Reactions
30
#14
file_get_contents

This download the image like I say in my previous comment xD

But it take many time to serve the image (sometimes simply don't work), it's better do a crud request and also save the result on a redis database (this is a approach from luaxy [Erezia forge api], I use it on azareth website when it was online and works really fine)
But i don't know how to show the image after with the file_get_contents and don't know about crud request or redis so xd
 
Inscrit
24 Juin 2015
Messages
53
Reactions
0
#15
But i don't know how to show the image after with the file_get_contents and don't know about crud request or redis so xd
PHP:
public function forge($request)
    {
        $redis = Redis::connection();
        $format = pathinfo($request, PATHINFO_EXTENSION);
        switch ($format)
        {
            case 'png':
            default:
                header('Content-Type: image/png');
                break;
        }
        $url = "http://staticns.ankama.com/";
        $url .= $request;
        $hash = md5($request);
        $data = $redis->get("dofus:forge:$hash");
        if ($data)
        {
            print $data;
        }
        else
        {
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_COOKIESESSION, true);
            $result = curl_exec($curl);
            $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
            if ($code == 404)
            {
                header("HTTP/1.1 404 Not Found");
                header('Content-Type: plain/text');
                print $result;
            }
            else
            {
                $redis->set("dofus:forge:$hash", $result);
                print $result;
            }
            curl_close($curl);
        }
    }
This is the code from https://github.com/LuaxY/EreziaAPI/blob/master/app/controllers/ForgeController.php

The $request is equal to : "dofus/renderer/look/'.bin2hex($entityLookString).'/face/1/35_35-0.png'"

In fact the code simply save the binary data of the image get from the Dofus api in a Redis database, you can save where you like, and can save safely because the result of a string of look never change ^^

PD: It's curl sorry bad typo xD
 
Dernière édition:
Haut Bas