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

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

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

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

последний источник из реплик flickrapi hg

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 ответ

Решение

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

Правильная версия для использования - версия из источников. Версия, поставляемая с 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!

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