Airship Python Library
***********************
``urbanairship`` is a Python library for using the `Airship
`_ web service in support of our messaging product
lines and related features.
Installation
=============
Using ``pip``::
$ pip install urbanairship
Using the library
==================
The library is intended to be used with the small footprint of a single
import. To get started, import the package, and create an appropriate client object
representing a single Airship project.
.. code-block:: python
import urbanairship as ua
client = ua.client.BasicAuthClient('', '')
push = ua.Push(client)
push.audience = ua.all_
push.notification = ua.notification(alert='Hello, world!')
push.device_types = ua.device_types('ios', 'android')
push.send()
The library uses `requests`_ for communication with the Airship API,
providing connection pooling and strict SSL checking. All client objects are
threadsafe, and can be instantiated once and reused in multiple threads.
Authentication
-------------
The library supports three authentication methods:
* Basic Authentication - Using app key and master secret
* Bearer Token Authentication - Using app key and Airship-generated bearer token
* OAuth2 Authentication - Using JWT assertions with automatic token refresh
For more details on each authentication method, see the :doc:`client` documentation.
Logging
-------
``urbanairship`` uses the standard logging module for integration into
an application's existing logging. If you do not have logging
configured otherwise, your application can set it up like so:
.. code-block:: python
import logging
logging.basicConfig()
If you're having trouble with the Airship API, you can turn on verbose debug
logging.
.. code-block:: python
logging.getLogger('urbanairship').setLevel(logging.DEBUG)
Exceptions
==========
.. autoclass:: urbanairship.AirshipFailure
.. autoclass:: urbanairship.Unauthorized
.. autoclass:: urbanairship.ConnectionFailure
Development
============
The library source code is `available on GitHub `_.
Tests can be run with nose_:
.. code-block:: sh
nosetests --with-doctest
Contents
=========
.. toctree::
:maxdepth: 3
client
push.rst
devices.rst
audience.rst
reports.rst
custom_events.rst
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. _channels: https://docs.airship.com/api/ua/?python#tag-channels
.. _requests: http://python-requests.org
.. _github: https://github.com/urbanairship/python-library
.. _nose: https://nose.readthedocs.org/en/latest/