•  » Utilisation
  •  » [1.7.0] Difficultés avec les services web

#1 2007-05-28 14:02:24

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

[1.7.0] Difficultés avec les services web

Bonjour à tous.

J'utilise depuis peu external_random.php (issu ma galerie 1.6.2) sur mon site web pour afficher 5 images aléatoires de ma galerie sur ma page d'index.

Cette fonction a disparue dans la 1.7.0 pour être remplacée par le service web ws.php et c'est trsè bien. Seulement, pour migrer ma galerie vers la v1.7.0, j'aimerai pouvoir retrouver l'affichage de mes 5 images (pas forcément en aléatoire, je pensais à un échantillon des 5 dernières ajoutées). Le pb s'est que je ne comprend pas le fonctionnement des services web.

Comment appeler le service qu'il me faut dans ma page d'index ? J'ai trouvé sur le wiki les spécifs des services web avec les options de fonctionnement prévues avant la sortie de la 1.7.0 mais je ne vois pas comment y faire appel.

Avec la 1.6.2, je faisais un include de external_random.php dans ma page d'index avec les options requises. Visiblement, cela ne fonctionne pas de la même manière avec ws.php.

Merci d'avance pour votre aide.

PS : Je ferai bien un petit tuto sur le wiki quand j'aurais pigé le truc.

Hors ligne

#2 2007-05-28 14:18:00

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [1.7.0] Difficultés avec les services web

As-tu fait un test avec ton fichier /tools/ws.htm

Par exemple, sur ma démo:
http://ruben.demo.free.fr/pwg_bsf_demo/tools/ws.htm

Tu interroges simplement la galerie et elle te répond.
Mon test à moi a été de mettre en commentaire sur mon site en passant par cette interface!

Hors ligne

#3 2007-05-28 14:49:57

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [1.7.0] Difficultés avec les services web

En fait, j'étais parti sur l'insertion du code suivant dans ma page d'index :

Code:

<?php fopen('http://127.0.0.1/Infernoweb/phpwebgallery/ws.php?type=maxviewed&maxreturn=5'); ?>

Suite à ton post, j'ai été voir cet outil. J'ai choisi la méthode pwg.categories.getImages avec une requête GET sous un format REST (XML).

1) sans toucher aux paramètres de la requête, la génération du XML me remonte bien toutes mes images

2) en modifiant quelques paramètres (par exemple, recursive à true, per_page = 5), j'ai ceci (extrait):

Code:

−
  <rsp stat="ok">
−
  <images page="0" per_page="5" count="5">
−
  <image id="177" width="834" height="638" hit="0" file="013.jpg" tn_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Upload/thumbnail/TN-013.jpg" element_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Upload/013.jpg">
−
  <categories>
<category id="217" url="http://127.0.0.1/Infernoweb/phpwebgallery/index.php?/category/217" page_url="http://127.0.0.1/Infernoweb/phpwebgallery/picture.php?/177/category/217"/>
</categories>
</image>
−
  <image id="1" width="800" height="546" hit="1" file="Chris_Achilleos-001.jpg" tn_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/thumbnail/TN-Chris_Achilleos-001.jpg" element_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/Chris_Achilleos-001.jpg" high_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/pwg_high/Chris_Achilleos-001.jpg">
<name>001</name>
−
  <categories>
<category id="60" url="http://127.0.0.1/Infernoweb/phpwebgallery/index.php?/category/60" page_url="http://127.0.0.1/Infernoweb/phpwebgallery/picture.php?/1/category/60"/>
</categories>
</image>
−
  <image id="2" width="545" height="800" hit="1" file="Chris_Achilleos-002.jpg" tn_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/thumbnail/TN-Chris_Achilleos-002.jpg" element_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/Chris_Achilleos-002.jpg" high_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/pwg_high/Chris_Achilleos-002.jpg">
<name>002</name>
−
  <categories>
<category id="60" url="http://127.0.0.1/Infernoweb/phpwebgallery/index.php?/category/60" page_url="http://127.0.0.1/Infernoweb/phpwebgallery/picture.php?/2/category/60"/>
</categories>
</image>
−
  <image id="3" width="800" height="479" hit="0" file="Chris_Achilleos-003.jpg" tn_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/thumbnail/TN-Chris_Achilleos-003.jpg" element_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/Chris_Achilleos-003.jpg" high_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/pwg_high/Chris_Achilleos-003.jpg">
<name>003</name>
−
  <categories>
<category id="60" url="http://127.0.0.1/Infernoweb/phpwebgallery/index.php?/category/60" page_url="http://127.0.0.1/Infernoweb/phpwebgallery/picture.php?/3/category/60"/>
</categories>
</image>
−
  <image id="4" width="800" height="543" hit="0" file="Chris_Achilleos-004.jpg" tn_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/thumbnail/TN-Chris_Achilleos-004.jpg" element_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/Chris_Achilleos-004.jpg" high_url="http://127.0.0.1/Infernoweb/phpwebgallery/./galleries/Achilleos_Chris/pwg_high/Chris_Achilleos-004.jpg">
<name>004</name>
−
  <categories>
<category id="60" url="http://127.0.0.1/Infernoweb/phpwebgallery/index.php?/category/60" page_url="http://127.0.0.1/Infernoweb/phpwebgallery/picture.php?/4/category/60"/>
</categories>
</image>
</images>
</rsp>

Ce qui me semble correct. Je me dis alors que c'est mon appel au service sur ma page d'index qui est foireux... J'ai bon ?

Hors ligne

#4 2007-05-28 14:59:58

rub
Former Piwigo Team
Lille
2005-08-26
5239

Re: [1.7.0] Difficultés avec les services web

Moi, je n'ai pas été plus loin que les tests avec le script de démode rvelices.

A priori dans ce fichier, les apels sont fait en ajax "new Ajax.Request(...)" mais ca doit surement se faire en php et pas seulement en javascript.

C'est rvelices & VDigital, qui ont planché sur le sujet.
Soit VDigital, te donnera une réponse, soit il faudra faire un petit up au retour de rvelices!

Hors ligne

#5 2007-05-28 15:01:34

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [1.7.0] Difficultés avec les services web

Il y a deux stratégies qui ne peuvent pas cohabiter.

Soit tu utilises les fonctions standards de ta galerie pour répondre aux requêtes.
Soit tu actives un niveau de sécurité complémentaire.

Les services web permettent un peu tout et de partout.
Ils n'ont pas été testés en profondeur.

Maintenant la solution exposée par rub, n'est qu'un exemple.
Je vais t'en proposer un autre.
Il est extrait de ./admin/ws_checker.php
Module qui assure la sécurité de la seconde stratégie.
Laquelle s'active par:
$conf['ws_access_control'] = true;
Le ws_checker va donc contrôler par les services web que le service web fonctionne.

$request = get_absolute_root_url().'ws.php?method=pwg.getVersion&format=rest&'
           . "partner=$chk_partner" ;
  $session = curl_init($request);
  curl_setopt ($session, CURLOPT_POST, true);
  curl_setopt($session, CURLOPT_HEADER, true);
  curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
  $response = curl_exec($session);
  curl_close($session);
  $status_code = array();
  preg_match('/\d\d\d/', $response, $status_code);
  switch( $status_code[0] ) {
      case 200:
      $ws_status = l10n('Web Services under control');
          break;
      case 503:
          $ws_status = 'PhpWebGallery Web Services failed and returned an '
                 . 'HTTP status of 503. Service is unavailable. An internal '
                 . 'problem prevented us from returning data to you.';
          break;
      case 403:
          $ws_status = 'PhpWebGallery Web Services failed and returned an '
                 . 'HTTP status of 403. Access is forbidden. You do not have '
                 . 'permission to access this resource, or are over '
                 . 'your rate limit.';
          break;
      case 400:
          // You may want to fall through here and read the specific XML error
          $ws_status = 'PhpWebGallery Web Services failed and returned an '
                 . 'HTTP status of 400. Bad request. The parameters passed '
                 . 'to the service did not match as expected. The exact '
                 . 'error is returned in the XML response.';
          break;
      default:
          $ws_status = 'PhpWebGallery Web Services returned an unexpected HTTP '
                 . 'status of:' . $status_code[0];
  }

Pour des exemples plus détaillés, il faut savoir qu'un des formats (je ne me souviens plus duquel) est à l'identique de ceux de yahoo.
Lesquels sont très documentés.

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#6 2007-05-28 15:16:47

vimages
Membre
2004-03-27
2429

Re: [1.7.0] Difficultés avec les services web

bonjour,....

on se raproche du mur d'images dont j'avais parlé il y a déjà un bon moment...

Un mur de vignettes en affichage aléatoire et décalé dans le temps (3x3 par exemple) affiché sur un page externe, ayant pour source les thumbnails d'un dossier spécifié.

Dossier public pour un mur en page d'accueil publique ou dossier privé pour un affichage sur une page d'un site particulier avec un accés autorisé.

à+
amicalement,
éric.

Hors ligne

#7 2007-05-28 15:18:50

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [1.7.0] Difficultés avec les services web

J'oublie pas Eric...
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#8 2007-05-28 15:30:49

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [1.7.0] Difficultés avec les services web

VDigital a écrit:

Il y a deux stratégies qui ne peuvent pas cohabiter.

Soit tu utilises les fonctions standards de ta galerie pour répondre aux requêtes.
Soit tu actives un niveau de sécurité complémentaire.

le niveau de sécurité supplémentaire n'est pas adapté pour ce que je souhaite faire. J'ai compris qu'il était plutôt destiné pour une externalisation vers un partenaire tiers que l'on ne gère pas.

Je souhaite simplement faire avec le service web ce que je fais actuellement avec external_random de la 1.6.2. A moins qu'il y ait un autre moyen plus simple ?

Hors ligne

#9 2007-05-28 15:35:24

vimages
Membre
2004-03-27
2429

Re: [1.7.0] Difficultés avec les services web

Je sais vincent.. pas de soucis je ne suis pas du tout impatient (ce n'est pas une évolution vitale), au contraire, je vois que tout avance dans le bon sens et que nombre d'idées sont finalement partagées.

PWG monte toujours en puissance, efficacité et qualité. Bien assez rapidement. J'apprécie cela bien plus que je ne le -//:---\spam.

amicalement,
éric.

Hors ligne

#10 2007-05-29 23:26:48

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [1.7.0] Difficultés avec les services web

Eric a écrit:

VDigital a écrit:

Il y a deux stratégies qui ne peuvent pas cohabiter.

Soit tu utilises les fonctions standards de ta galerie pour répondre aux requêtes.
Soit tu actives un niveau de sécurité complémentaire.

le niveau de sécurité supplémentaire n'est pas adapté pour ce que je souhaite faire. J'ai compris qu'il était plutôt destiné pour une externalisation vers un partenaire tiers que l'on ne gère pas.

Je souhaite simplement faire avec le service web ce que je fais actuellement avec external_random de la 1.6.2. A moins qu'il y ait un autre moyen plus simple ?

Tu n'es pas obligé d'activer le second niveau de sécurité...
(C'est rvelices qui sera content.)
N'empêche que dans ce cas ./tools/ws.htm va te permettre de trouver la(les) méthode(s) dont tu as besoin.
Puis le code que je t'ai donné permet de comprendre comment coder en php.
Seule différence: pas de &partner...

$request = 'http://www.blahblah.fr/phpwebgallery/ws.php?method=pwg.getVersion&format=rest';

Quatre formats sont disponibles à découvrir via ./tools/ws.htm

8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#11 2007-05-30 00:14:24

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [1.7.0] Difficultés avec les services web

Ma préférence format=php qui renvoit le tableau serialisé.
8-)

PS: (Le mode sécurisé n'est pas une contrainte en soit mais une relative garantie).
Pour ceux que seraient intéressés pour découvrir les fonctions du mode sécurisé, dans les prochains jours je publierai la méthode permettant de faire fonctionner ./tools/ws.php quand bien celui-ci n'est pas prévu pour.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#12 2007-05-30 17:53:40

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [1.7.0] Difficultés avec les services web

Merci Vincent !

J'essaye çà dès que j'ai 5 minutes (c'est à dire pas loin de maintenant) et je ferai mon rapport.

;-)

Hors ligne

#13 2007-05-30 21:48:37

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [1.7.0] Difficultés avec les services web

Je crois avoir pigé le principe de l'outil ../tools/ws.htm.

J'ai testé avec la méthode pwg.categories.getImages avec mes paramètres suivants :
Request format: GET
Response format: PHP Serial
recursive = True
per_page= 1
(Le reste n'est pas coché)

En cliquant sur "Invoke", j'obtiens bien un tableau sérialisé qui me remonte les infos d'une image publique de ma galerie:

Code:

a:2:{s:4:"stat";s:2:"ok";s:6:"result";a:1:{s:6:"images";a:4:{s:4:"page";i:0;s:8:"per_page";s:1:"1";s:5:"count";i:1;s:8:"_content";
a:1:{i:0;a:10:{s:2:"id";i:149;s:5:"width";i:577;s:6:"height";i:1200;s:3:"hit";i:4;s:4:"file";s:21:"Kay_Allen-Acolyte.jpg";s:4:"name";
s:7:"Acolyte";s:7:"comment";N;s:6:"tn_url";s:98:"http://127.0.0.1/phpwebgallery/./galleries/Allen_Kay/thumbnail/TN-Kay_Allen-Acolyte.jpg";
s:11:"element_url";s:85:"http://127.0.0.1/phpwebgallery/./galleries/Allen_Kay/Kay_Allen-Acolyte.jpg";s:10:"categories";
a:1:{i:0;a:3:{s:2:"id";i:218;s:3:"url";s:65:"http://127.0.0.1/phpwebgallery/index.php?/category/218";s:8:"page_url";
s:71:"http://127.0.0.1/phpwebgallery/picture.php?/149/category/218";}}}}}}}

Jusque là, tout va bien. Ceci me donne donc un appel externe de la forme :

http://127.0.0.1/phpwebgallery/ws.php?m … per_page=1

que j'intègre dans une variable $resultat à traiter sur ma page externe (pour l'occasion, ma page d'index). C'est là que çà se complique (rapport à mes connaissances limitées en php) :

Si je pige tout bien, il faut maintenant "désérialiser" ces données afin de pouvoir retrouver le chemin vers l'image que je veux afficher sur ma page d'index. Alors j'ai commencé à pondre ceci :

Code:

<?php
  $resultat = 'http://127.0.0.1/phpwebgallery/ws.php?method=pwg.categories.getImages&format=php&recursive=true&per_page=1';
  $c = unserialize($resultat);
  $this->Random_Pics = $c;
  $d = $this->Random_Pics['element_url']; /* Extraction de l'url de l'image */
  echo $d;
?>

Mais cela semble plus compliqué que cela... J'ai remarqué que le tableau sérialisé est composé de "sous tableaux" qu'il me faut surement remonter par des array. Enfin... Je crois...

Suis-je sur la bonne voie ? Ou est-ce que je m'égare dans les méandres de mon cerveau torturé ?

S'il y a une approche plus simple, je suis preneur car dans mon exemple, il ne s'agit que d'une image. Et j'envisage d'en afficher 5 !

Alors ? J'ai bon ?

Dernière modification par Eric (2007-05-30 22:47:50)

Hors ligne

#14 2007-05-30 22:04:29

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: [1.7.0] Difficultés avec les services web

var_dump est ton ami...
8-)


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#15 2007-05-30 22:47:34

Eric
Former Piwigo Team
VALENCE (FR)
2005-03-25
4579

Re: [1.7.0] Difficultés avec les services web

J'ai essayé avec var_dump mais aucun retour.

J'ai alors vérifié ce qu'il y a dans la variable $resultat par un echo => Ben tout logiquement ce que je lui ai mis : 'http://127.0.0.1/phpwebgallery/ws.php?method=pwg.categories.getImages&format=php&recursive=true&per_page=1'

Mais pas le tableau sérialisé...

Y a quelque chose que je ne pige pas dans cette affaire mais je crois que je vais reporter à demain. La journée a déjà été assez pénible comme çà sans que je m'en remette une couche "pour le fun".

Merci en tous cas pour ton aide, Vincent.

Hors ligne

  •  » Utilisation
  •  » [1.7.0] Difficultés avec les services web

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2025 · Contact