Reutilizando flickr conta Ubuntu com flickrapi

1

Estou tentando desenvolver uma pequena ferramenta Python para interagir com minha conta do Flickr. Eu quero mantê-lo simples, então eu decidi usar a conta do Flickr que eu já configurei no meu sistema (estrutura de contas online).

Eu estudei o tutorial Contas on-line para desenvolvedores de aplicativos e capaz de obter os detalhes da minha conta no Flickr.

O problema apareceu quando tentei usar o módulo flickrapi. Eu tentei a versão mais recente e, assim como a versão disponível via apt em 13.04. A API mudou um pouco, mas as duas tentativas terminaram com uma mensagem de que tenho um token oauth inválido. Isso é o que eu tentei:

última fonte do flickrapi hg repo

import flickrapi
flickr = flickrapi.FlickrAPI(u"d87224f0b467093b2a87fd788d950e27", u"4c7e48102c226509",
             token=flickrapi.auth.FlickrAccessToken(u"my_token", 
                       u"my_token_secret", u"write",
                       u'DarGad', u'dargad', u'user_nsid'))
flickr.test.login()

que leva a:

ERROR:flickrapi.auth.OAuthFlickrInterface:do_request: Status code 400 received, content:
ERROR:flickrapi.auth.OAuthFlickrInterface:    oauth_problem=parameter_absent
ERROR:flickrapi.auth.OAuthFlickrInterface:    oauth_parameters_absent=oauth_token

versão do apt-get (1.2-3)

import flickrapi
flickr = flickrapi.FlickrAPI("d87224f0b467093b2a87fd788d950e27", "4c7e48102c226509", 
                             token="my_token")
flickr.test_login()

resulta com FlickrError: Error: 98: Invalid auth token . Eu também tentei combinações diferentes de FlickrAPI sinalizadores de construtor (por exemplo, store_token , cache ) sem sucesso.

Eu usei uma abordagem semelhante para o Twitter (usei o módulo python-twitter do apt) e funcionou perfeitamente com a conta que eu já tinha configurado.

Meu palpite é que o problema é com o flickrapi, já que o mesmo token funciona com Shotwell e unity-photos-lens. Eu verifiquei suas fontes e nenhum não usa flickrapi (e Shotwell não é mesmo em Python).

Eu apreciarei quaisquer dicas sobre como fazer o flickrapi funcionar com a estrutura de contas online. Ou talvez haja outro módulo Python que funcione corretamente com contas online? Eu também tentei o flickr.py e python-flickr-api mas fiquei com a impressão de que ambos estão desatualizados - também não há sucesso com eles.

    
por dargad 30.06.2013 / 14:00

1 resposta

0

Parece que eu consegui encontrar um caminho depois de tudo.

A versão correta a ser usada é a versão das fontes. A versão fornecida com o Ubuntu 13.04 é muito antiga e usa a API de autenticação anterior do Flickr. O 2.0-beta de hg usa a nova API oauth.

O problema é que o token fornecido no construtor FlickrAPI não foi transmitido para o OAuthFlickrInterface interno. Para contornar este problema, eu precisava simplesmente chamar:

flickr = flickrapi.FlickrAPI(
                             # args same as before
                            )
flickr.token_valid()

se esse método retornar True , poderemos ter certeza:

rsp = flickr.test.login()

Isso executará uma chamada de API para verificar o token, mas antes disso, ele passará o objeto de token para OAuthFlickrInterface como um efeito colateral.

Agora posso usar o flickrapi com minha conta do Ubuntu Flickr!

    
por dargad 30.06.2013 / 22:32