{ "info": { "author": "S\u00f6ren Busch, Gene Sluder", "author_email": "sbusch@mobivention.com", "bugtrack_url": null, "classifiers": [], "description": "mobi-apns\n=========\n\nA library for interacting with APNs using HTTP/2 and token based\nauthentication.\n\nForked from Gene Sluder\u2019s gobiko.apns\n(https://github.com/genesluder/python-apns)\n\nInstallation\n------------\n\n``pip install mobi-apns``\n\nRequirements\n------------\n\n- Python 3.5+\n- hyper\n- pyjwt\n- cryptography\n\nUsage\n-----\n\nCreate a client::\n\n from mobi.apns import APNsClient, APNsMessage\n\n client = APNsClient(\n team_id=TEAM_ID, \n bundle_id=BUNDLE_ID, \n auth_key_id=APNS_KEY_ID, \n auth_key_filepath=APNS_KEY_FILEPATH, \n use_sandbox=True\n )\n\nAlternatively, you can create a client with the contents of the auth key\nfile directly::\n\n client = APNsClient(\n team_id=TEAM_ID, \n bundle_id=BUNDLE_ID, \n auth_key_id=APNS_KEY_ID, \n auth_key=APNS_KEY, \n use_sandbox=True\n )\n\nIf you run into any problems deserializing the key, try wrapping it to\n64 lines::\n\n client = APNsClient(\n team_id=TEAM_ID,\n bundle_id=BUNDLE_ID,\n auth_key_id=APNS_KEY_ID,\n auth_key=APNS_KEY,\n use_sandbox=True,\n wrap_key=True\n )\n\nConstruct a message::\n\n message = APNsMessage('TEST',\n badge=1,\n sound='default',\n loc_key='This is a %@',\n loc_args=['Test'])\n\nNow you can send a message to a device by specifying its registration\nID::\n\n client.send_message(\n registration_id, \n message\n )\n\nOr you can send bulk messages to a list of devices::\n\n client.send_bulk_message(\n [registration_id_1, registration_id_2], \n message\n )\n\nPayload\n-------\n\nAdditional APNs payload values can be passed into the message\nconstruction\n\n::\n\n message = APNsMessage(\n \"All your base are belong to us.\",\n badge=None, \n sound=None, \n category=None, \n content_available=False,\n action_loc_key=None, \n loc_key=None, \n loc_args=[], \n extra={}, \n identifier=None, \n expiration=None, \n priority=10, \n topic=None\n )\n\nPruning\n-------\n\nThe legacy binary interface APNs provided an endpoint to check whether a\nregistration ID had become inactive. Now the service returns a\nBadDeviceToken error when you attempt to deliver an alert to an inactive\nregistration ID. If you need to prune inactive IDs from a database you\ncan handle the BadDeviceToken exception to do so::\n\n::\n\n from mobi.apns.exceptions import BadDeviceToken\n\n try:\n client.send_message(OLD_REGISTRATION_ID, \"Message to an invalid registration ID.\")\n except BadDeviceToken:\n # Handle invalid ID here\n pass\n\nSame approach if sending by bulk::\n\n::\n\n from mobi.apns.exceptions import PartialBulkMessage\n\n try:\n client.send_bulk_message([registration_id1, registration_id2], \"Message\")\n except PartialBulkMessage as e:\n # Handle list of invalid IDs using e.bad_registration_ids\n pass\n\nDocumentation\n-------------\n\n- More information on APNs and an explanation of the above can be found\n ``in this blog post ``\\ \\_.\n\n- Apple documentation for APNs can be found\n ``here ``\\ \\_.\n\nCredits\n-------\n\n- Gene Sluder\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "https://bitbucket.org/mobivention/mobi-apns/get/0.2.9.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/mobivention/mobi-apns/", "keywords": "apns,push notifications", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "mobi-apns", "package_url": "https://pypi.org/project/mobi-apns/", "platform": "", "project_url": "https://pypi.org/project/mobi-apns/", "project_urls": { "Bug Reports": "https://bitbucket.org/mobivention/mobi-apns/issues", "Company Home": "https://www.mobivention.com", "Download": "https://bitbucket.org/mobivention/mobi-apns/get/0.2.9.zip", "Homepage": "https://bitbucket.org/mobivention/mobi-apns/", "Source": "https://bitbucket.org/mobivention/mobi-apns/" }, "release_url": "https://pypi.org/project/mobi-apns/0.2.9/", "requires_dist": [ "cryptography", "hyper", "pyjwt" ], "requires_python": ">=3.5", "summary": "A library for interacting with APNs using HTTP/2 and token-based authentication.", "version": "0.2.9" }, "last_serial": 4179324, "releases": { "0.2.2": [ { "comment_text": "", "digests": { "md5": "466e205dbc3efb41a7db623f430dd224", "sha256": "c2a672c92c820de64bcf81c435ca102503693378e2a329b5b345704e94038ed9" }, "downloads": -1, "filename": "mobi_apns-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "466e205dbc3efb41a7db623f430dd224", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8488, "upload_time": "2018-08-17T07:49:37", "url": "https://files.pythonhosted.org/packages/1e/6b/de29e026a41a534726a6787a041ce19d81f03636fb238f24564ca6183ee5/mobi_apns-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fea23310d4fe3cb33695abe234fbd20c", "sha256": "ba95fb8739504d621b7d705bee74f7b52bd6a61cc422ccbdec759eee9546a8dc" }, "downloads": -1, "filename": "mobi-apns-0.2.2.tar.gz", "has_sig": false, "md5_digest": "fea23310d4fe3cb33695abe234fbd20c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8651, "upload_time": "2018-08-17T07:49:38", "url": "https://files.pythonhosted.org/packages/17/7e/4ada630f28a09f8a632c4b62b6c6f9750cd1178b552ce5185daffecf37f5/mobi-apns-0.2.2.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "e8958caced99f4900285cec678a4ad31", "sha256": "2b89ff164623c5e74d28974e5553df6431913c847ea31ef4b65072e66428ad3f" }, "downloads": -1, "filename": "mobi_apns-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e8958caced99f4900285cec678a4ad31", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9379, "upload_time": "2018-08-17T08:11:05", "url": "https://files.pythonhosted.org/packages/bb/f7/ab6443fb21327f9529e08d0a4227cfcf87380c50a8c6f9ab70fded4cf7d3/mobi_apns-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "317e2b5d5837ab281a9a6f17c63c53de", "sha256": "b82ba3c0b1733349b84b041b8edc7f4788e046250e2a0bc6c2e052c6d69c8dd0" }, "downloads": -1, "filename": "mobi-apns-0.2.7.tar.gz", "has_sig": false, "md5_digest": "317e2b5d5837ab281a9a6f17c63c53de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7752, "upload_time": "2018-08-17T08:11:06", "url": "https://files.pythonhosted.org/packages/e6/42/ab1cfd9800e769dba5ceaab1ae5b22a141ec86315ce1c3e5e14d530c52dc/mobi-apns-0.2.7.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "bbb2bc4a5ca78b423f6d17c0d93f8b5e", "sha256": "cb48515eb52e5a32e565d6e7715e4d49489a427ab116a6ebc97484b4dc9bf12c" }, "downloads": -1, "filename": "mobi_apns-0.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bbb2bc4a5ca78b423f6d17c0d93f8b5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 8710, "upload_time": "2018-08-17T08:23:30", "url": "https://files.pythonhosted.org/packages/f9/ce/1427380c739ccb6228329fdcc42fa72493200759426ae50600bd8e70e8c9/mobi_apns-0.2.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd5491436743357cc1a176ac69935a36", "sha256": "1c87e8f0affd46ee0ad2efad51c4d49108bf8364c931d7c9f1917143105cfdbe" }, "downloads": -1, "filename": "mobi-apns-0.2.9.tar.gz", "has_sig": false, "md5_digest": "dd5491436743357cc1a176ac69935a36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7105, "upload_time": "2018-08-17T08:23:31", "url": "https://files.pythonhosted.org/packages/3f/55/5deb84d74f7fed581920f6d42fd1dff4ac4a4e5e0928ba1fde2db7d71a39/mobi-apns-0.2.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bbb2bc4a5ca78b423f6d17c0d93f8b5e", "sha256": "cb48515eb52e5a32e565d6e7715e4d49489a427ab116a6ebc97484b4dc9bf12c" }, "downloads": -1, "filename": "mobi_apns-0.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bbb2bc4a5ca78b423f6d17c0d93f8b5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 8710, "upload_time": "2018-08-17T08:23:30", "url": "https://files.pythonhosted.org/packages/f9/ce/1427380c739ccb6228329fdcc42fa72493200759426ae50600bd8e70e8c9/mobi_apns-0.2.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd5491436743357cc1a176ac69935a36", "sha256": "1c87e8f0affd46ee0ad2efad51c4d49108bf8364c931d7c9f1917143105cfdbe" }, "downloads": -1, "filename": "mobi-apns-0.2.9.tar.gz", "has_sig": false, "md5_digest": "dd5491436743357cc1a176ac69935a36", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7105, "upload_time": "2018-08-17T08:23:31", "url": "https://files.pythonhosted.org/packages/3f/55/5deb84d74f7fed581920f6d42fd1dff4ac4a4e5e0928ba1fde2db7d71a39/mobi-apns-0.2.9.tar.gz" } ] }