Повторное использование учетной записи flickr Ubuntu с flickrapi

Я пытаюсь разработать небольшой инструмент Python для взаимодействия с моей учетной записью flickr. Я хочу, чтобы все было просто, поэтому я решил использовать учетную запись Flickr, которую я уже настроил в своей системе (платформа сетевых учетных записей).

Я изучил учебник по Онлайн-аккаунтам для разработчиков приложений и смог получить подробную информацию о моей учетной записи Flickr.

Проблема появилась, когда я попытался использовать модуль flickrapi. Я пробовал последнюю версию, а также версию, доступную через apt в 13.04. API немного изменился, но обе попытки закончились сообщением о том, что у меня неверный токен oauth. Это то, что я попробовал:

последний источник из 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()

, который приводит к:

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

версии из apt-get (1.2-3 )

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

результаты с FlickrError: Error: 98: Invalid auth token. Я также безуспешно пробовал разные комбинации флагов-конструкторов FlickrAPI (например, store_token, cache).

Я использовал аналогичный подход для Twitter (использовал модуль python-twitter от apt), и он отлично работал с уже настроенной учетной записью.

Я предполагаю, что проблема с flickrapi, так как тот же самый токен работает с Shotwell и unity-photos-lens. Я проверил их источники, и ни один из них не использует flickrapi (а Shotwell даже не в Python).

Буду признателен за любые советы о том, как заставить flickrapi работать с платформой онлайн-аккаунтов. Или, может быть, есть другой модуль Python, который правильно работает с учетными записями онлайн? Я также попробовал flickr.py и python-flickr-api , но у меня сложилось впечатление, что оба устарели - с ними тоже нет успеха.

1
задан 4 July 2013 в 19:47

1 ответ

Похоже, мне все-таки удалось найти путь.

Правильная версия, которая будет использоваться, является версией из источников. Версия, поставляемая с Ubuntu 13.04, слишком старая и использует предыдущий API аутентификации flickr. 2.0-бета от hg использует новый API oauth.

Проблема заключалась в том, что токен, предоставленный в конструкторе FlickrAPI, не был передан внутреннему OAuthFlickrInterface. Чтобы обойти эту проблему, мне нужно было просто позвонить:

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

, если этот метод возвращает True, мы можем убедиться:

rsp = flickr.test.login()

Это выполнит вызов API для проверки токена , но перед этим он передаст объект токена OAuthFlickrInterface в качестве побочного эффекта.

Теперь я могу использовать flickrapi с моей учетной записью Ubuntu Flickr!

0
ответ дан 4 July 2013 в 19:47

Другие вопросы по тегам:

Похожие вопросы: