O365-notifications is a pythonic implementation for the Notification services from Office 365. There are currently 2 ways for receiving notifications:
The versions on these are beta. For more details, see its documentation.
This approach is built on top of the current O365 package. You are recommended to look into its documentation for advance setups.
As mentioned, there currently 2 supported notification types in O365: push and streaming.
As of now, this project relies on Outlook REST Beta API. But because this API is now deprecated and will be decommissioned, a transition to Microsoft Graph API is required. See this section for more details.
This project does not contain an implementation for this type of notification. Therefore, contributions are more than welcome.
O365 documentation on push notifications can be found here.
This project provides an implementation for this type of notification. A quick example on how to use it is found below:
import O365
from O365_notifications.base import O365NotificationHandler
from O365_notifications.constants import O365EventType
from O365_notifications.streaming import O365StreamingSubscriber
account = O365.Account(...)
mailbox = account.mailbox()
# create a new streaming subscriber
subscriber = O365StreamingSubscriber(parent=account)
# ... and subscribe to resource events
resource = mailbox.inbox_folder()
events = [O365EventType.CREATED]
subscriber.subscribe(resource=resource, events=events)
# subscriber keeps track of active subscriptions
assert len(subscriber.subscriptions) == 1
# implement a notification handler for customized behavior
subscriber.start_streaming(handler=O365NotificationHandler())
O365 documentation on streaming notifications can be found here.
As communicated by Microsoft here, The v2.0
REST endpoint will be
fully decommissioned in November 2022, and the v2.0
documentation will be removed
shortly after.
Let's see what it means for each one of the notification types:
Push notifications will be moved to Microsoft Graph, and go under the name of change notifications. Its documentation can be found here.
Transitioning to the Microsoft Graph should be a simple and straightforward task.
Unfortunately Microsoft will not port this service to Microsoft Graph. Therefore, as of November 2022, the current implementation in this project will be obsolete. More details on that can be found here.
Run tests with tox
:
# ensure tox is installed
$ tox
Run linter only:
$ tox -e lint
Optionally, run coverage as well with:
$ tox -e coverage
MIT licensed. See LICENSE.