Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

az-messaging

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

az-messaging

Messaging for django

  • 1.3.0
  • PyPI
  • Socket score

Maintainers
1

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.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc