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, 'Заголовок', 'Текст')
Можно использовать параметры дополнительные параметры уведомлений