Статьи с тегом api

OAuth и django rest framework

OAuth и django rest framework

Тема избитая, но мне не удалось найти готового решения, которое полностью бы меня устроило. Поэтому пишу сам :).

Итак, у нас есть "одностраничный" веб сайт, который общается с бекендом посредством REST API. Клиентская часть может быть написана с помощью ember, angularjs или чего-то подобного. Бекенд - django rest framework (DRF). И есть тривиальная задача - добавить вход через социальные сети (OAuth протокол).

Как бы это выглядело в случае обычного (олд-скульного) сайта? Пользователь нажимает логин, открывается страница социальной сети ...

Добавлено 2015-07-18

OAuth по шагам

OAuth по шагам

OAuth протокол бывает двух версий: 1.0 и 2.0.

Большинство сервисов сегодня используют версию 2.0, вероятно потому что ее проще реализовать. Так же версию 2.0 можно относительно безопасно использовать в standalone-приложениях (те, которые без сервера).

Для понимания протоколов очень полезно взглянуть на их реализацию. Тут я приведу несколько скриптов, которые общаются с OAuth-провайдерами разных версий. Т.е. все скрипты реализуют функционал клиента (не сервера). Используются только стандартные python библиотеки. Вот почему ...

Добавлено 2015-05-16

Отправка писем в django проекте с помощью сервиса mandrill

Отправка писем в django проекте с помощью сервиса mandrill

Отправлять email сообщения с сервера можно просто по SMTP протоколу. Но есть другой способ - через специальные сервисы рассылки. Про один такой, mandrill.com, я немного расскажу.

Преимущества относительно SMTP

  • Подробная статистика отправленных писем. Сколько писем отправлено, кому, когда. Сколько писем открыли, какие ссылки нажимали.
  • Шаблоны писем. Их можно редактировать через сервис mandrill, т.о. образом не нужно ничего придумывать в админке django. В шаблоне можно использовать переменные, задавать тему письма, даже адрес отправителя. Из ...

Добавлено 2014-03-18

Асинхронный Bitcoin RPC клиент на python

Для работы с Bitcoin RPC на python'е есть библиотека Python-BitcoinRPC.

Но недавно мне понадобилось обратиться к API из приложения на tornado. Указанная библиотека работает в синхронном, т.е. блокирующем режиме. Для торнадо было бы намного лучше использовать асинхронную версию. Готовой найти не удалось, поэтому написал свой форк - асинхронный, который использует торнадовский AsyncHTTPClient: https://github.com/st4lk/python-bitcoinrpc-tornado.

Пример (выводит текущее количество блоков в сети Bitcoin):

from bitcoinrpc_async.authproxy import AsyncAuthServiceProxy
from tornado import ioloop ...

Добавлено 2014-01-30

Скрипт для скачивания музыки вконтакте

Vkontakte audio download

Беглый поиск соответствующего скрипта на python'е не дал результов. В статье на хабре ссылка не работает. Решил написать свой велосипед, он доступен здесь.

Запуск (нужен установленный python интерпретатор):

python vkcom_audio_download.py

Проверял на python 2.6 и 2.7. Никаких дополнительных библиотек не требуется.

Принцип работы:

Скрипт проверяет сохраненный access_token. Если его нет или срок истек, то открывается страница в браузере с запросом на доступ к данным аккаунта (аудио записям). После подтверждения идет ...

Добавлено 2013-02-04

Мессенджер афоризмов

Мессенджер афоризмов

У меня есть интересный проект, которым хотел бы поделиться. Идея создать его возникла во время изучения Java. Прочел я несколько книжек, сделал маленькие программки-задания и захотелось сделать нечто большее.

Суть проекта:

Есть desktop-программа (клиент), которая сидит в трее, и периодически показывает афоризмы. Афоризмы она берет с web-сервиса (сервер), таким образом база цитат находится в одном месте. Т.е. база не привязана к клиенту, я могу обновить ее на сервере и все клиенты это заметят. У ...

Добавлено 2012-08-31