problema usando amazon webservices de dentro do grok

0 views
Skip to first unread message

Flavio Coelho

unread,
Nov 26, 2007, 11:27:09 AM11/26/07
to grok-br
Pessoal,

não sei se vcs tem alguma experiencia com o módulo pyaws, que é
permite acessar os webservices da Amazon.

Pois bem: eu baixei este módulo instalei testei no console do Python e
funciona às mil maravilhas.

Entretanto minha ideia é servir algumas das funções da pyaws via
xmlrpc via grok.

então em minha classe xmlrpc defini a seguinte função:

from pyaws import ecs
ecs.setLicenseKey('1XD8WKR0G38BD7XFF7G2')
class xmlrpc(grok.XMLRPC)
def getAmazonBookRecByTag(self,tagid):
books= ecs.ItemSearch(tagid,SearchIndex='Books')
print books[0].Title
return [b.Title for b in books]

muito simples né? nada para dar errado certo? Errado! dentro do grok a
chamada à amazon sempre falha com a seguinte mensagem de erro:

<class 'xmlrpclib.Fault'>: <Fault -1: 'Unexpected Zope exception:
InvalidOperationParameter: The Operation parameter is invalid. Please
modify the Operation parameter and retry. Valid values for the
Operation parameter include TagLookup, ListLookup, CartGet,
SellerListingLookup, CustomerContentLookup, ItemLookup,
SimilarityLookup, SellerLookup, ItemSearch, VehiclePartLookup,
BrowseNodeLookup, CartModify, ListSearch, CartClear,
VehiclePartSearch, CustomerContentSearch, CartCreate,
TransactionLookup, VehicleSearch, SellerListingSearch, CartAdd,
Help.'>

alguém já se deparou com este problema?

Talvez o Luciano utilize a API da Amazon no Circulante, neste caso, vc
teve algum problema com ele, vc usa o Pyaws?

abcs,

Flávio


Luciano Ramalho

unread,
Nov 26, 2007, 4:36:40 PM11/26/07
to gro...@googlegroups.com
On Nov 26, 2007 2:27 PM, Flavio Coelho <fcco...@gmail.com> wrote:
> então em minha classe xmlrpc defini a seguinte função:
>
> from pyaws import ecs
> ecs.setLicenseKey('1XD8WKR0G38BD7XFF7G2')
> class xmlrpc(grok.XMLRPC)
> def getAmazonBookRecByTag(self,tagid):
> books= ecs.ItemSearch(tagid,SearchIndex='Books')
> print books[0].Title
> return [b.Title for b in books]

> <class 'xmlrpclib.Fault'>: <Fault -1: 'Unexpected Zope exception:
> InvalidOperationParameter: The Operation parameter is invalid. Please
> modify the Operation parameter and retry. Valid values for the
> Operation parameter include TagLookup, ListLookup, CartGet,
> SellerListingLookup, CustomerContentLookup, ItemLookup,
> SimilarityLookup, SellerLookup, ItemSearch, VehiclePartLookup,
> BrowseNodeLookup, CartModify, ListSearch, CartClear,
> VehiclePartSearch, CustomerContentSearch, CartCreate,
> TransactionLookup, VehicleSearch, SellerListingSearch, CartAdd,
> Help.'>
>
> alguém já se deparou com este problema?

Esta mensagem significa que a requisição montada pelo pyaws está
errada. Não acho que tenha qualquer relação com o Grok, porque a
mensagem de erro vem lá da Amazon.

> Talvez o Luciano utilize a API da Amazon no Circulante, neste caso, vc
> teve algum problema com ele, vc usa o Pyaws?

Não usei o Pyaws, preferi implementar o meu próprio buscador. Dentro
do kirbi existe um sub-projeto kirbifetch que contem o meu buscador.
Ele não é uma aplicação Grok. Funciona como um serviço, e roda
Twisted. O kirbifetch faz polling de uma URL do kirbi onde o kirbi
posta ISBNs de livros que foram cadastrados sem título, daí ele busca
os dados (e as capas) na Amazon (futuramente também em outras fontes
de dados) e envia para o kirbi. Em geral, acho ruim uma aplicação Web
ficar bloqueada esperando por uma resposta remota, então nesta
arquitetura que eu implementei o kirbi nunca fica esperando. Quem faz
a espera é o kirbifetch, que consome muito menos recursos.

[ ]s
Luciano

Flavio Coelho

unread,
Nov 28, 2007, 6:52:10 AM11/28/07
to grok-br
Sim, a mensagem de erro vem da Amazon, ma este erro so ocorre quando
o acesso é feito via aplicativo Grok. eu testei o mesmo query, ao
mesmo tempo, do console do python e funciona perfeitamente. Como não
consigo ver a request que está sendo enviada para a amazon, fica
dificil descobrio que está acontecendo de errado entre a montagem da
Request e o seu envio.

Qual a melhor maneira de se debugar um aplicativo Grok?

Quanto à minha aplicação ficar bloqueada esperando uma resposta, vc
tem toda a razão, este é apenas um protótipo feito para testar estas
funções de fetch externas, daí a "ligação direta" ;-)

obrigado,

Flávio

On Nov 26, 7:36 pm, "Luciano Ramalho" <luci...@ramalho.org> wrote:
Reply all
Reply to author
Forward
0 new messages