Ce plugin a vocation à servir de passerelle avec les webservices s’intéressant aux livres.
Interface avec Amazon
Le plugin intègre la librairie « Amazon ECS Class », qui sait récupérer des informations de produits sur l’API « Product Advertising » d’Amazon (qui auparavant s’appelait ECS).
En clair, il offre une fonction qui permet, à partir d’un titre ou d’un auteur, de retrouver toutes les données des livres correspondants : éditeur, date de publication, image de couverture, nombre de pages, etc. Cette fonction peut être utilisée directement en PHP.
Cette fonction sert également de format pour la boucle (DATA)
(nécessite une version de SPIP supportant les itérateurs), ce qui permet de faire par exemple une boucle sur les livres traitant de SPIP, et d’afficher leur titre et leur couverture :
<BOUCLE_books(DATA) {source booksearch, "SPIP"}
{Publisher!=Books LLC}
>
[<h1>(#VALEUR{Title}|typo)</h1>]
[<h2>(#VALEUR{Author}|print|typo)</h2>]
[<h3>(#VALEUR{Publisher}|print|typo)</h3>]
[<dt>ISBN</dt>
<dd>(#VALEUR{ASIN})</dd>]
[<dt>Pages</dt>
<dd>(#VALEUR{NumberOfPages})</dd>]
[<dt>Prix</dt>
<dd>(#VALEUR{ListPrice/FormattedPrice})</dd>]
[<dt>Publié :</dt>
<dd>(#VALEUR{PublicationDate}|affdate)</dd>]
[<dt>Langue</dt><dd>(#VALEUR{Languages/Language/0/Name})</dd>]
[<img src="(#VALEUR{MediumImage/URL})" height="[(#VALEUR{MediumImage/Height/_})]" width="[(#VALEUR{MediumImage/Width/_})]" />
]
<hr />
</BOUCLE_books>
et d’afficher ainsi les livres concernés. Si vous regardez attentivement la définition de la boucle, elle indique le mot-clé demandé « SPIP », et exclut des résultats « Books LLC », un éditeur spammeur.
Le tri n’est pas précisé, Amazon se chargeant de nous livrer les résultats « par pertinence ». Mais on pourrait par exemple trier ceux-ci par prix ou par date de publication.
Interface avec Google Books
L’API de Google Books permet de faire une recherche dans les livres, mais le format de retour est exclusivement JSON ; pour effectuer une veille permanente sur un terme donné, ce plugin contient un squelette qui emploie l’API JSON avec une boucle DATA, et retourne le résultat au format RSS.
Voici par exemple ce que donne la recherche sur « le gué du loir » dans le logiciel Reeder.
L’URL du flux est ?page=googlebooks.rss&q=TERMES+de+RECHERCHE
.
Discussions by date of activity
3 discussions
Bonjour
Savez-vous si il est possible d’ajouter des liens d’affilié pour chaque produit ?
Je me réponds à moi-même et je donne la solution :
Par ailleurs la BDD Amazon fournit des tas d’autres renseignements. Pour afficher les champs dispo, j’ai simplement ajouté momentanément un print_r du résultat envoyé par Amazon, dans le fichier /inc/booksearch_to_array.php :
Reply to this message
Tu nous dis que l’on peut trier les résultats, mais je n’y arrive pas. Aurais tu un exemple de syntaxe pour trier par date de publication. j’ai bien essayé un par PublicationDate mais sans succès.
J’ai modifié aussi un petit bout du code dans ton fichier pour ajouter l’affichage d’une couv générique et ajouter le tag alt.
J’ai mis à jour la démo : tu verras qu’on peut trier
{par PublicationDate}
.http://zone.spip.org/trac/spip-zone/changeset/43533
Reply to this message
bonjour,
spip 2.1.5 ce plugin et plugin iterateurs ; j’ai copié-collé la boucle de l’exemple pour tester, rien même en désactivant les autres plugins et en vidant le cache
quel est l’oubli ?
ah, est-ce l’histoire de la clé AWS Amazon ?
sinon l’article ne signale pas la dépendance (?) à iterateurs
En l’absence de clé AWS, le plugin est censé provoquer une erreur pour le webmestre si tu fais var_mode=recalcul ; mais en effet suite à un bricolage j’avais masqué cette erreur ; je corrige.
Concernant itérateurs, l’article mentionne la boucle (DATA) ; mais je vais être plus explicite.
mince,
j’ai bien (?) rempli
dans booksearch/lib/AmazonECS.class.php ; toujours le message d’erreur : « [SPIP, booksearch] The AWS Access Key Id you provided does not exist in our records.» Je ne comprends pas l’
associateTag
demandé.Le réglage de la clé se fait dans
config/mes_options.php
:(Une prochaine évolution du plugin pourrait être d’ajouter un CFG pour indiquer cette clé plus simplement.)
ok, ce coup-ci mes codes fonctionnent ; c’est impressionnant
merci
Je viens de faire un essai en copiant-colant le réglage de la clé dans
config/mes_options.php
et appelant la page iter_booksearch.html et j’ai toujours l’erreur [SPIP, booksearch] The AWS Access Key Id you provided does not exist in our records.si tu as copié-collé l’identifiant que j’ai mis ci-dessus c’est normal car ce n’est pas le vrai ; il faut que tu en demandes un à toi sur le site d’AWS.
Effectivement, cela fonctionne maintenant. Encore un petit truc à ajouter à la doc ;-)
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Follow the comments:
|
