Category index for “api”
OAuth и django rest framework
Тема избитая, но мне не удалось найти готового решения, которое полностью бы меня устроило. Поэтому пишу сам :).
Итак, у нас есть “одностраничный” веб сайт, который общается с бекендом посредством REST API. Клиентская часть может быть написана с помощью ember, angularjs или чего-то подобного. Бекенд - django rest framework (DRF). И есть тривиальная задача - добавить вход через социальные сети (OAuth протокол).
OAuth step by step
OAuth протокол бывает двух версий: 1.0 и 2.0.
Большинство сервисов сегодня используют версию 2.0, вероятно потому что ее проще реализовать. Так же версию 2.0 можно относительно безопасно использовать в standalone-приложениях (те, которые без сервера).
Для понимания протоколов очень полезно взглянуть на их реализацию. Тут я приведу несколько скриптов, которые общаются с OAuth-провайдерами разных версий. Т.е. все скрипты реализуют функционал клиента (не сервера). Используются только стандартные python библиотеки. Вот почему глядя на них лучше понимаешь сам протокол OAuth - все перед глазами и все более-менее знакомое. Конечно, для реальной работы нужно использовать только готовые и проверенные временем пакеты. Эти скрипты только для понимания процесса. Разбираться с готовыми библиотеками порой бывает сложно, они разбиты на много модулей, могут использоваться разные сторонние пакеты, и в итоге общая картина ускользает из виду.
Отправка писем в django проекте с помощью сервиса mandrill
Отправлять email сообщения с сервера можно просто по SMTP протоколу. Но есть другой способ - через специальные сервисы рассылки. Про один такой, mandrill.com, я немного расскажу.
Асинхронный Bitcoin RPC клиент на python
Для работы с Bitcoin RPC на python’е есть библиотека Python-BitcoinRPC.
Но недавно мне понадобилось обратиться к API из приложения на tornado. Указанная библиотека работает в синхронном, т.е. блокирующем режиме. Для торнадо было бы намного лучше использовать асинхронную версию. Готовой найти не удалось, поэтому написал свой форк - асинхронный, который использует торнадовский AsyncHTTPClient: https://github.com/st4lk/python-bitcoinrpc-tornado.
Скрипт для скачивания музыки вконтакте
Беглый поиск соответствующего скрипта на python’е не дал результов. В статье на хабре ссылка не работает. Решил написать свой велосипед, он доступен здесь.
Запуск (нужен установленный python интерпретатор):
python vkcom_audio_download.py
Проверял на python 2.6 и 2.7. Никаких дополнительных библиотек не требуется.
Мессенджер афоризмов
У меня есть интересный проект, которым хотел бы поделиться. Идея создать его возникла во время изучения Java. Прочел я несколько книжек, сделал маленькие программки-задания и захотелось сделать нечто большее.