La coupure et la concaténation ne sont pas obligatoires mais simplement pour faciliter la lecture.
Quant à ta requête initiale, si tu meurs idiot, t'inquiète pas je t'accompagne.
8-)
Hors ligne
Tu vas sur le site d'Eric...
Tu vas y trouver 5 miniatures sur sa page d'accueil.
Et ce n'est que le début, on peut même se signer, chercher des commentaires, etc...
La totale, un monde va s'ouvrir.
Et on n'a pas fini d'expliquer.
8-)
Hors ligne
VDigital a écrit:
Quant à ta requête initiale, si tu meurs idiot, t'inquiète pas je t'accompagne.
C'est toujours plus sympa de mourir idiot à plusieurs ;-)
sakkhho a écrit:
est ce que c'est possible d'avoir une synthèse du post (utilité, code à inserer...), j'suis un peu perdu là...
Si j'ai le temps je tenterai une approche simplifiée dans le wiki. Mais il me faut d'abord comprendre le pourquoi du comment des requêtes ws.php valides et les différentes options / informations qui peuvent être affichées sur une page déportée.
Et puis, je suis en congés en fin de semaine, ce qui n'arrange pas ma dispo sur le sujet - mais qui m'arrange bien pour une longue période de repos, loin de toute technologie plus poussée qu'un barbecue ;-))
Je vais faire mon possible, soit dit en passant. Mais j'ai tout de même une question pour le Team : Quelle est la meilleure section pour poster un billet sur le wiki concernant les web services ?
Hors ligne
La meilleure place pour un billet sur le wiki, c'est d'être où tu veux dans le wiki, après au besoin on déplacera.
8-)
Hors ligne
Comme il ne fait pas super beau, je me suis mis à la rédaction du sujet Web Services sur le wiki. Mais je m'aperçois que çà prend déjà une certaine ampleur, type roman !
J'espère que je ne pousse pas trop sur les détails... Sinon, je publie dans la FAQ. Cela me semblait l'endroit le plus adapté à première vue. Je vais essayer de terminer çà pour ce soir mais s'il y a déjà des remarques, merci de m'en faire part pour que je corrige le tir en "live".
Hors ligne
Les trois miniatures de la page d'accueil de SOS Madagascar proviennent des Services Web.
SOS MADAGASCAR
( Et cela signifie que la galerie est passée de 1.5.2 en 1.7.0 )
8-)
Hors ligne
VDigital a écrit:
Les trois miniatures de la page d'accueil de SOS Madagascar proviennent des Services Web.
Très classe ! Cà me fait l'effet d'être un "petit joueur" car je n'utilise pas (encore) WS aussi loin dans les fonctions.
Hors ligne
C'est fait ! J'ai terminé la doc sur les Web Services. J'espère ne pas avoir raconté trop de bêtises et, surtout, avoir été clair dans mes explications.
J'attends vos retours (Team et utilisateurs).
Hors ligne
J'ai déjà corrigé quelques petits points de détails...
J'ai entre autres choses expliqué le FIXME...
je n’ai pas encore trouvé de cadre d’emploi pour POST...
(Sauf que pwg.session.login c’est POST uniquement)...
Je t'invite à te concentrer sur cette méthode.
Je n'ai pas essayé mais si sur ton forum quelqu'un se connecte, essaie de le connecter juste après via les web services à ta galerie.
ou
(pwg.session.getStatus) pour savoir si établir une connexion est nécessaire si oui (pwg.session.login).
Ça devrait.
Il te reste à faire le plugin de ton forum pour faire l'appel aux WS de PWG.
8-)
PS: On n'a pas encore prévu l'inscription, désolé. Mais si tu partages les tables, c'est même pas la peine.
Hors ligne
VDigital a écrit:
J'ai déjà corrigé quelques petits points de détails...
Vu ! La notion de ratio m'avait échappée...
VDigital a écrit:
J'ai entre autres choses expliqué le FIXME...
je n’ai pas encore trouvé de cadre d’emploi pour POST...
(Sauf que pwg.session.login c’est POST uniquement)...
Exact. Et je n'avais pas percuté sur les implications avec un forum (par exemple). Cà peut être particulièrement puissant pour intégrer toutes les authentifications différentes d'un site (forum, galerie, blog...) en une seule session.
Je creuserai dans ce sens.
Hors ligne
Un peu plus de sécurité s'impose dans ce monde de brutes, non?
Pour sécuriser un peu plus vos accès WS.
1 - On commence par renommer son /tools/ws.htm en walouM-ws.htm ou en biquet9-ws.htm.
2 - Dans sa config locale:
// Access control = false
// Les contrôles seront réalisés sur la base des autorisations users/groups
$conf['ws_access_control'] = false;
On le passe gentiment à true et on va vite dans l'admin définir une clé d'accès pour ses premiers WS.
Car les anciens appels sont refusés "partner" inexistant = accès interdit.
Oui dans l'appel des services on aura un parametre en plus partner=xxxxx
Le xxxxx, il faut aller dans l'admin de la galerie le définir dans le menu des services web.
Pour le premier on fera simple:
Confidential partner key guest
Target *=ne rien mettre
Restrict access to *=ne rien mettre
Returned images limit 3
Duration in days 365
Comment Accès libre
On devra aller modifier vite ses appels existant pour ajouter partner=guest
Reste l'ancien ws.htm à modifier... on y vient dans le prochain post.
8-)
PS: Ne pas mettre "guest" mais "CcoRiaCe10MoI" par exemple.
Dernière modification par VDigital (2007-07-03 23:25:08)
Hors ligne
Votre walouM-ws.htm ou autre... (votre ex tools/ws.htm).
Trois fonctions sont à modifier... en gras la clé partner à insérer...
function pwgChangeUrl()
{
$("error").update("");
setVisibility("methodListWrapper", "hidden");
$("methodList").update("");
setVisibility("methodWrapper", "hidden");
setVisibility("methodDetailWrapper", "hidden");
gServiceUrl = $F('ws_url');
gCachedMethods = new Hash();
try {
var ajaxReq = new Ajax.Request(
gServiceUrl,
{method:'get', parameters:'partner=guest&format=json&method=reflection.getMethodList',
onSuccess: function (r) { onSuccess_getMethodList(r); }
}
)
}catch (e)
{
dumpError(e);
}
return false;
}
function pwgSelectMethod(methodName)
{
$("error").update("");
$("methodName").update(methodName);
setVisibility("methodDetailWrapper", "hidden");
setVisibility("methodWrapper", "visible");
if ( gCachedMethods[methodName] )
fillNewMethod( gCachedMethods[methodName] );
else
{
try {
var ajaxReq = new Ajax.Request(
gServiceUrl,
{method:'get', parameters:'partner=guest&format=json&method=reflection.getMethodDetails&methodName='+methodName,
onSuccess: function (r) { onSuccess_getMethodDetails(r); }
}
)
}catch (e)
{
dumpError( e );
}
}
return false;
}
function pwgInvokeMethod( newWindow )
{
var methodName = $('methodName').innerHTML;
var method = gCachedMethods[methodName];
var reqUrl = gServiceUrl;
reqUrl += "?format="+$F('responseFormat');
reqUrl += "&partner=guest";
if ($('requestFormat').value == 'get')
{
reqUrl += "&method="+methodName;
for ( var i=0; i<method.params.length; i++)
{
if (! $('methodParameterSend_'+i).checked)
continue;
if ( method.params[i].acceptArray && $F('methodParameterValue_'+i).split('|').length > 1 )
{
$F('methodParameterValue_'+i).split('|').each(
function(v) {
reqUrl += '&'+method.params[i].name+'[]='+v;
}
);
}
else
reqUrl += '&'+method.params[i].name+'='+$F('methodParameterValue_'+i);
}
if ( !newWindow )
$("invokeFrame").src = reqUrl;
else
window.open(reqUrl);
}
else
{
var form = $("invokeForm");
form.action = reqUrl;
var t = '<input type="hidden" name="'+'method'+'" value="'+methodName+'"/>';
for ( var i=0; i<method.params.length; i++)
{
if (! $('methodParameterSend_'+i).checked)
continue;
if ( method.params[i].acceptArray && $F('methodParameterValue_'+i).split('|').length > 1 )
{
$F('methodParameterValue_'+i).split('|').each(
function(v) {
t += '<input type="hidden" name="'+method.params[i].name+'[]" value="'+v+'"/>';
}
);
}
else
t += '<input type="hidden" name="'+method.params[i].name+'" value="'+$F('methodParameterValue_'+i)+'"/>';
}
form.innerHTML = t;
form.target = newWindow ? "_blank" : "invokeFrame";
form.submit();
}
return false;
}
PS: Ne pas mettre "guest" mais "CcoRiaCe10MoI" par exemple. 8-)
Dernière modification par VDigital (2007-07-03 23:26:06)
Hors ligne
Et voilà, vous seul pouvez tester vos services web (ou les personnes qui sont Admin/Adviser de votre site).
Ou (et surtout) vos partenaires car vous allez pouvoir leur donner une clé (par exemple à rvelices) et il pourra ainsi afficher à sa façon les images de votre site sur son blog par exemple.
Vous choisirez une autre clé que guest. 8-)
Les clés doivent rester secrètes sinon je vous colle un nouveau commentaire sur votre galerie à chaque image visitée sur le site de démo. Je plaisante.
Si votre partenaire divulgue votre clé, vous avez le contrôle: vous supprimez la dite clé.
Le mode non sécurisé: permet malheureusement d'écrire un module qui testera des mots de passe bateaux
avec les users connus de votre site (visibles sur commentaires par exemple) dont le vôtre.
Et ainsi tenter de devenir webmaster de votre site.
C'est un peu compliqué les Services Web mais on n'a pas fini d'en parler.
8-)
Donc on sécurise.
8-)
Hors ligne
Bonjour,
Grâce à vous (Eric et Vincent), j'ai enfin pu extraire une photo de ma galerie pour la coller sur un site. (faculté de external random enfin retrouvée)
Doc très claire pour moi. Je me suis couché satisfait...
Mais quel réveil! Qu'est ce donc que toutes ces "choses de sécurité" à modifier?
Je plaisante, je m'y colle de ce pas.
Par contre, j'ai dû louper une étape: faut-il également ajouter la clé partner=SURTOUTPASGUEST dans l'appel à ws.php sur le site utilisateur?
Merci d'avance.
Hors ligne