Skip to main content

Messaging for django

Project description

GitHub GitHub GitHub

AZ Messaging config

[[TOC]]

Install with pip

pip install az-messaging

settings.py

INSTALLED_APPS = [
   # ....
   'azmessaging',
   # ...
]

AZ_MESSAGING = {
   'SETTING_VALUE_READER_CLASS': 'azmessaging.readers.DefaultReader',
   'CLASS': {
       'SMS': 'azmessaging.channels.SMSNotificationChannel',
       'TELEGRAM': 'azmessaging.channels.TelegramNotificationChannel',
       'PUSH': 'azmessaging.channels.PushNotificationChannel',
   },
   'TELEGRAM': {
       'SERVICE_PROVIDER': {
           'DEFAULT': {
               'CLASS': 'azmessaging.telegram.TELEGRAMAPIDefaultAPI',
               'api_key': os.environ.get('TELEGRAM_DEFAULT_API_KEY', None),
               'api_server': os.environ.get('TELEGRAM_DEFAULT_API_SERVER', None),
           },
       },
       'DEFAULT_SERVICE_PROVIDER': 'DEFAULT',  # REQUIRED
       'PRIORITY_SERVICE_PROVIDER': [  # REQUIRED
           'DEFAULT',
       ],
   },
   'SMS': {
       'SERVICE_PROVIDER': {
           'SNS': {
               'CLASS': 'azmessaging.sms.SMSAPISNSAmazon',
               'ROUTING': [
                   {
                       'countries': 'UK, US',
                       'region_name': 'eu-west-1'
                   },
                   {
                       'continents': 'EUROPE, AFRICA',
                       'region_name': 'eu-west-2'
                   }
               ],
               'key_id': os.environ.get('AWS_ACCESS_KEY_ID', None),
               'access_key': os.environ.get('AWS_SECRET_ACCESS_KEY', None),
               'region_name': os.environ.get('AWS_SNS_DEFAULT_REGION', None),
           },
           'TWILIO': {
               'CLASS': 'azmessaging.sms.SMSAPITwilio',
               'ROUTING': [
                   {
                       'countries': 'DE, EE',
                       'sender': os.environ.get('TWILIO_EE_SENDER', None),
                   },
                   {
                       'continents': 'ASIA',
                       'sender': os.environ.get('TWILIO_ASIA_SENDER', None),
                   }
               ],
               'account_sid': os.environ.get('TWILIO_ACCOUNT_SID', None),
               'auth_token': os.environ.get('TWILIO_AUTH_TOKEN', None),
               'sender': os.environ.get('TWILIO_DEFAULT_SENDER', None),
           },
       },
       'DEFAULT_SERVICE_PROVIDER': 'SNS',  # REQUIRED
       'PRIORITY_SERVICE_PROVIDER': [      # REQUIRED
           'TWILIO',
           'SNS',
       ],
       'WHITE_LIST': '__all__',    # EXAMPLE = 'COUNTRY_CODE_1, COUNTRY_CODE_2' 
       'BLACK_LIST': '__none__',   # EXAMPLE = '__all__' OR 'COUNTRY_CODE_3, COUNTRY_CODE_4'
   },
   'PUSH': {
       'SERVICE_PROVIDER': {
           'FCMDJANGO': {
               'CLASS': 'azmessaging.pushnotifications.fcmdjango.FCMDjangoAPI',
               'api_key': os.environ.get('FCM_SERVER_KEY', None),
           },
       },
       'DEFAULT_SERVICE_PROVIDER': 'FCMDJANGO',  # REQUIRED
       'PRIORITY_SERVICE_PROVIDER': [  # REQUIRED
           'FCMDJANGO',
       ],
   },
}

Migrate

python manage.py migrate

SMS

Support

  1. SNS AWS
  2. Twilio

How to use it?

Base on sample config, two sms send from twilio with TWILIO_EE_SENDER number and one of them from AWS-SNS and region is eu-west-1.

from azmessaging import default_settings as settings
from azmessaging.models import SMSNotificationType
identifier = 'what ever you want'
message = 'Your code is: 1222'
sms_type = SMSNotificationType.TRANSACTIONAL
klass = settings.READER.klass('sms', identifier)
sms = klass(identifier=identifier, message=message, sms_type=sms_type)
sms.set_receivers(['+16503331111', '+37211123450', '+37211123451'])
sms.notify()

Telegram

How to use it?

from azmessaging import default_settings as settings
identifier = 'what ever you want'
message = 'Your code is: 1222'
klass = settings.READER.klass('telegram', identifier)
telegram = klass(identifier=identifier, message=message)
telegram.set_receivers(['user_a', 'user_b', ])
telegram.notify()

Push notification

How to use it?

from azmessaging import default_settings as settings
identifier = 'what ever you want'
message = 'Your code is: 1222'
title = 'OTP'
image_url = 'https://example.com/1.png' 
klass = settings.READER.klass('push', identifier)
push_notification = klass(identifier=identifier, message=message, title=title, image_url=image_url, payload_data={})
push_notification.set_receivers(['user_a', 'user_b', ])
push_notification.notify()

TODO

  • Documentation

  • Support multiple provider

  • SMS Support

  • SMS Support SNS AWS

  • SMS Support Twilio

  • SMS Routing Base on country/continents

  • SMS Support every provider you want.

  • SMS Batch

  • Push notification

  • Console

  • Websocket

  • Telegram

Develop

License

The MIT License (MIT). Please see License File for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

az-messaging-1.3.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

az_messaging-1.3.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file az-messaging-1.3.0.tar.gz.

File metadata

  • Download URL: az-messaging-1.3.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.11

File hashes

Hashes for az-messaging-1.3.0.tar.gz
Algorithm Hash digest
SHA256 24c510bb3daa2a93a0e52dc635d8b5d6dc27eb18817117769268ec91eb73ad4a
MD5 8aecb018814d233e37e2e92343254b58
BLAKE2b-256 08892c3bd1ae7c928269468fb8aea875646a64b060c7c9d98e62291e18262998

See more details on using hashes here.

File details

Details for the file az_messaging-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: az_messaging-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.7.11

File hashes

Hashes for az_messaging-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8746ce0d9d42128864c9b1344df9323f998ed581110a54db0984b56d665354d
MD5 40159682672bd7a9069f4c65335466d9
BLAKE2b-256 93171ec7dbae7841ef5408045d542bf2e01f7e1102135fa3d531d46cfea36d23

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page