Django application for PushAll notification service
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
django_pushall
.gitignore
LICENSE
MANIFEST
README.md
requirements.txt
setup.py

README.md

django-pushall

django-pushall - это приложение для поддержки системы Push-уведомлений PushAll для фреймворка Django. Подробное описание системы PushAll на официальном сайте

Поддерживает версии Django>=1.8, Python 2.7, 3.4, 3.5

#Установка Установка

pip install django-pushall

Добавить приложение в INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'django_pushall',
    ... 
]    

Выполнить команду

python manage.py makemigrations django_pushall

python manage.py migrate django_pushall

для создания таблиц моделей

Если вы будете использовать Callback для определения подписавшихся пользователей, то необходимо добавить в urls.py

urlpatterns = [
    ...
    url(r'^pushall/', include('django_pushall.urls')),
    ...
]

Укажите настройки канала в settings.py

PUSHALL_CANAL_ID = 1234
PUSHALL_API_KEY = 'e789ed7bea3cbd86e951e4b268b45ed8'

PUSHALL_CANAL_ID - идентификатор канала. PUSHALL_API_KEY - ключ API канала на Pushall.ru Вы получите эти настройки при создании канала на сайте

Если вы планируете отправлять уведомления самому себе, то укажите в settings.py

PUSHALL_USER_ID = 01234
PUSHALL_USER_KEY = '3c2f2dc68c59b65ba9c789fd3a3fb4f6'

PUSHALL_USER_ID - идентификатор вашей учетной записи на сайте Pushall.ru. PUSHALL_USER_KEY - ключ API вашей учетной записи Получить эти настройки можно в личном кабинете на сайте Pushall.ru -> Администрирование -> API общее

#Отправка уведомлений ##Отправка самому себе

from django_pushall import Pushall

Pushall.self('Заголовок', 'Текст сообщения')  # простое уведомление
Pushall.self('Заголовок', 'Текст сообщения', url='http://site.ru')  # уведомление со ссылкой
Pushall.self('Заголовок', 'Текст сообщения', icon='http://site.ru/icon.png')  # уведомление со своей иконкой
Pushall.self('Заголовок', 'Текст сообщения', ttl=2160000)  # уведомление со временем жизни в секундах

Метод Pushall.self возвращает идентификатор уведомления

##Отправка всех пользователям канала

from django_pushall import Pushall

Pushall.broadcast('Заголовок', 'Текст сообщения')

Возвращает идентификатор уведомления.

##Отправка подписчику канала

from django_pushall import Pushall

Pushall.unicast(12345, 'Заголовок', 'Текст сообщения') #отправка уведомления подписчику с идентификатором 12345

Возвращает идентификатор уведомления

##Отправка нескольким подписчикам канала

from django_pushall import Pushall

Pushall.milticast([12345, 12346, 12347], 'Заголовок', 'Текст сообщения') #отправка уведомления подписчикам с идентификаторами 12345, 12346, 12347

Возвращает идентификатор уведомления

##Дополнительные параметры отправки уведомлений

Указание ссылки для переходе по клику на уведомление

Pushall.broadcast('Заголовок', 'Текст сообщения', url='http://site.ru')

Указание своей иконки уведомления

Pushall.broadcast('Заголовок', 'Текст сообщения', icon='http://site.ru/icon.png')

Время жизни уведомления в секундах

Pushall.broadcast('Заголовок', 'Текст сообщения', ttl=2160000)

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

Pushall.broadcast('Заголовок', 'Текст сообщения', hidden=PushallAPI.HIDDEN_ALL) #скрыть уведомление из истории пользователей после отправки
Pushall.broadcast('Заголовок', 'Текст сообщения', hidden=PushallAPI.HIDDEN_FEED) #скрыть уведомление из истории канала

Приоритет уведомления

Pushall.broadcast('Заголовок', 'Текст сообщения', priority=PushallAPI.PRIORITY_DEFAULT) #приоритет по-умолчанию
Pushall.broadcast('Заголовок', 'Текст сообщения', priority=PushallAPI.PRIORITY_LOW) #низкий приоритет. Не будит мобильные устройства
Pushall.broadcast('Заголовок', 'Текст сообщения', priority=PushallAPI.PRIORITY_HIGH) #высокий приоритет. Будит мобильные устройства

Включение и отключение пользовательской фильтрации уведомлений

Pushall.broadcast('Заголовок', 'Текст сообщения', filter=PushallAPI.FILTER_DISABLE) #принудительно отключить фильтрацию
Pushall.unicast(12345, 'Заголовок', 'Текст сообщения', filter=PushallAPI.FILTER_ENABLE) #принудительно включить фильтрацию

##Просмотр состояния ленты канала

from django_pushall import Pushall

print(Pushall.show_list()) #вывод на экран состояния ленты канала
print(Pushall.show_list(lid=1000)) #вывод на экран состояния уведомления c идентификатором 1000

##Просмотр списка подписчиков канала

from django_pushall import Pushall

print(Pushall.show_users()) #вывод на экран списка подписчиков
print(Pushall.show_users(uid=12345)) #вывод на экран информации о подписчике с идентификатором 12345

#Сбор подписчиков Чтобы приложение знало какие пользователи подписались на ваш канал необходимо использовать Callback подписки. Для этого необходимо добавить в urls.py

urlpatterns = [
    ...
    url(r'^pushall/', include('django_pushall.urls')),
    ...
]

и указать в настройках канала на сайте Pushall.ru Callback-адрес для получения ID

http://ваш-url/pushall/callback

После подписки пользователь будет переходить по этому адресу. Приложение получит его UID в системе и далее перенаправит на главную страницу вашего сайта Изменить адрес редиректа можно в setting.py

PUSHALL_CALLBACK_REDIRECT = 'адрес редиректа'

Все подписчики привязываются к пользователям сайта. Получить список подписчиков можно так

from django_pushall.models import PushUser

subscribers = PushUser.objects.all()

##Отправить уведомление подписчику

from django_pushall.models import PushUser

subscriber = PushUser.objects.get(uid=12345)
subscriber.notice('Заголовок', 'Текст')

Можно использовать параметры дополнительные параметры уведомлений

##Отправить уведомление пользователю сайта

from django.contrib.auth.models import User
from django_pushall.models import PushUser

user = User.objects.get(id=1)
PushUser.notice_to_user(user, 'Заголовок', 'Текст')

Можно использовать параметры дополнительные параметры уведомлений