{ "info": { "author": "Valentyn Vaityshyn", "author_email": "valenook.ua@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Application Frameworks" ], "description": "# AioBook\n\nAioBook it is async framework for build messenger application in facebook\n\n## Installation\n\nUse the package manager [pip](https://pip.pypa.io/en/stable/) to install aiobook.\n\n```bash\npip install aiobook\n```\n\n# Usage\n## Facebook Handler\n\nFacebook Handler can handle all [facebook webhook events](https://developers.facebook.com/docs/messenger-platform/webhook)\n\nYou can use decorators:\n```python\nfrom aiobook import FacebookHandler\nhandler = FacebookHandler(\"\", skip_confirm_execution=True)\n\n@handler.handle_message\nasync def handle_message(event):\n print(\"receive your message {}\".format(event.text))\n\n@handler.handle_postback\nasync def handle_postback(event):\n print(\"receive your postback with payload {}\".format(event.postback))\n```\nOr directly register handlers:\n```python\nasync def handle_message(event):\n print(\"receive your message {}\".format(event.text))\n\nasync def handle_postback(event):\n print(\"receive your postback with payload {}\".format(event.postback))\n\nhandler.set_webhook_handler(\"message\", handle_message)\nhandler.set_webhook_handler(\"postback\", handle_postback)\n```\nTo get list allowed and defined handlers:\n```python\nhandler.get_allowed_handlers()\nhandler.get_defined_handlers()\n```\nAlso you can set handler before_handle, and after_handle. It will be called before(or after) handle_event:\n```python\n@handler.before_handle\nasync def log_message(event):\n logging.info(\"{} handled.\".format(event.name))\n\n@handler.after_handle\nasync def log_message(event):\n logging.info(\"{} handled.\".format(event.name))\n\n```\n\nTo receive message you need register handler in HTTP Server:\n```python\nfrom aiohttp import web\nfrom aiobook import FacebookHandler\nhandler = FacebookHandler(\"\", skip_confirm_execution=True)\napp = web.Application()\napp.add_routes([web.get(\"\", handler.handle_get)])\napp.add_routes([web.post(\"\", handler.handle_post)])\n```\n\n## Messenger\nMessenger supports [Send API method](https://developers.facebook.com/docs/messenger-platform/reference/send-api).\n Facebook Handler included in Messenger.\n```python\nfrom aiobook import Messenger\nmessenger = Messenger(\"\", skip_confirm_execution=True)\n\n@messenger.handler.handle_message\nasync def handle_message(event):\n await messenger.send(event.sender_id, \"Your message: {}\".format(event.text))\n\n@messenger.handler.handle_postback\nasync def handle_postback(event):\n await messenger.send(event.sender_id, \"Your press button: {}\".format(event.postback))\n```\n### messenger.send\nAllow to send text or templates:\n```python\nawait messenger.send(event.sender_id, message, quick_replies=None,\n messaging_type=None, metadata=None, notification_type=None,\n tag=None)\n```\n#### Allowed types for messenger.send\nString message and templates\n##### Supported Templates\nButtonTemplate, GenericTemplate, ListTemplate, OpenGraphTemplate, MediaTemplate.\n##### Supported Buttons\nCallButton, GamePlayButton, LogInButton, LogOutButton, PostbackButton, UrlButton\n##### Other\nQuickReply, Element, MediaElement, OpenGraphElement\n```python\nfrom aiobook.core.facebook import QuickReply\nfrom aiobook.core.facebook import Element, MediaElement, OpenGraphElement\nfrom aiobook.core.facebook import ButtonTemplate, GenericTemplate, ListTemplate, OpenGraphTemplate, MediaTemplate\nfrom aiobook.core.facebook import CallButton, GamePlayButton, LogInButton, LogOutButton, PostbackButton, UrlButton\n\nawait messenger.send(event.sender_id,\n ButtonTemplate('Hi, press buttons',\n buttons=[PostbackButton('test', 'test_payload'),\n UrlButton(title='test_rl', url='https://www.messenger.com')]))\n\nawait messenger.send(event.sender_id,\n GenericTemplate([Element('test',\n buttons=[PostbackButton('test', 'test_payload'),\n UrlButton(title='test_rl', url='https://www.messenger.com')]),\n Element('test2', image_url, 'test2',\n buttons=[PostbackButton('test', 'test_payload'),\n UrlButton(title='test_rl', url='https://www.messenger.com')])]))\n\n```\n### messenger.get_user_profile\nAllows you to use a sender_id to retrieve user profile information:\n```python\nresponse = await messenger.get_user_profile(event.sender_id, fields=(\"first_name\", \"last_name\"))\n```\nNext fields are [supported](https://developers.facebook.com/docs/messenger-platform/identity/user-profile).\n\n### messenger.get_page_info\nAllows you to retrieve your page information:\n```python\nresponse = await messenger.get_page_info()\n```\n\n\n### messenger.imitate_typing\nDecorate func to imitate typing with defined timeout before answer. Included mark_seen, typing_on\nand typing_off sender_actions.\n```python\n@messenger.handler.handle_postback\n@messenger.imitate_typing(1) \nasync def handle_postback(event):\n await messenger.send(event.sender_id, \"Your press button: {}\".format(event.postback))\n```\nOr you can use sender actions independently:\n#### messenger.mark_seen\nSender action to mark last message as read\n```python\nawait messenger.mark_seen(event.sender_id)\n```\n#### messenger.typing_on\nSender action to turn typing indicators on\n```python\nawait messenger.typing_on(event.sender_id)\n```\n#### messenger.typing_off\nSender action to turn typing indicators off\n```python\nawait messenger.typing_off(event.sender_id)\n```\n\n\n## AioBook App\nAioBook it is small aiohttp wrapper that helps manage and deploy your messenger app\n```python\nfrom aiobook import AioBookApp\nfrom aiobook import Messenger\napp = AioBookApp(port=3000)\nmessenger = Messenger(\"\", skip_confirm_execution=True)\napp.register_messenger(messenger)\napp.start_bot()\n```\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Valenookua/aiobook", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "aiobook", "package_url": "https://pypi.org/project/aiobook/", "platform": "", "project_url": "https://pypi.org/project/aiobook/", "project_urls": { "Homepage": "https://github.com/Valenookua/aiobook" }, "release_url": "https://pypi.org/project/aiobook/0.1.2/", "requires_dist": [ "aiohttp (>=3.5.4)" ], "requires_python": "", "summary": "Async framework for build messenger application in facebook", "version": "0.1.2" }, "last_serial": 5596047, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3faa4cf5615f04f427a062ef655bb31f", "sha256": "bb4a6caa42144846cf8e6228ce5f9a6addb0cd7eba04af500f4923d0f7a15a86" }, "downloads": -1, "filename": "aiobook-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3faa4cf5615f04f427a062ef655bb31f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1481, "upload_time": "2019-07-23T11:51:45", "url": "https://files.pythonhosted.org/packages/98/5c/76bfc3a9983931415c54b33cf5347ad99dab543dced1c16e1c451d994514/aiobook-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9e480ec3dfea66bac5f262eb552c548", "sha256": "8be332c76dda9f6692a50dfbd2bae3bd750514ea94bd299326e50a1b5902f83a" }, "downloads": -1, "filename": "aiobook-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a9e480ec3dfea66bac5f262eb552c548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2850, "upload_time": "2019-07-23T11:51:48", "url": "https://files.pythonhosted.org/packages/22/48/12a6acfa9464ef65fb547de4e0959ab8e2e2d8eb48eba37dadad1df3f39d/aiobook-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c68667408d30aa4dad7b6bfed8226cc8", "sha256": "99fc0c1425f4b05ff57ab29e6bd64444bbc536a42a3dc19ad474b65ac0e7d329" }, "downloads": -1, "filename": "aiobook-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c68667408d30aa4dad7b6bfed8226cc8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12094, "upload_time": "2019-07-25T11:31:59", "url": "https://files.pythonhosted.org/packages/97/85/e3f96fd58be1a91b8e263601d71bd27befea7ec71c191ba1455afeb4694e/aiobook-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9fb4ce54e102a715e954f190c8e1631", "sha256": "4d3e142e36640afc9aef88d753a4eaf08be9332432fee037e95c73d90cb7f170" }, "downloads": -1, "filename": "aiobook-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e9fb4ce54e102a715e954f190c8e1631", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9012, "upload_time": "2019-07-25T11:32:00", "url": "https://files.pythonhosted.org/packages/c3/09/b011418bda116e3b06d2024eb8308639eeb832d8341c905a102c5942bde1/aiobook-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e1c3366b52ee87d854dbdaa73db1c7e3", "sha256": "916303fb529b10ff97985323f97bfc25f2c36c10e10dc88d5e7a90f1bce32d12" }, "downloads": -1, "filename": "aiobook-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e1c3366b52ee87d854dbdaa73db1c7e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13691, "upload_time": "2019-07-28T16:13:29", "url": "https://files.pythonhosted.org/packages/2e/89/60a3655bbb838b545e1d6a52a77f44523f08f93563f0e1c0d4a3e3c48c43/aiobook-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "761666ded31413bf93ddac4b5f627c03", "sha256": "90bf2e966debe10221df659796bc5a2dfbb987376ee630fbec65b69f092e2ba2" }, "downloads": -1, "filename": "aiobook-0.1.2.tar.gz", "has_sig": false, "md5_digest": "761666ded31413bf93ddac4b5f627c03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10959, "upload_time": "2019-07-28T16:13:31", "url": "https://files.pythonhosted.org/packages/72/88/21a74fe5914098deb41a23fd0552d2167a0cea2c0d35fe73ec6c5a336dc8/aiobook-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e1c3366b52ee87d854dbdaa73db1c7e3", "sha256": "916303fb529b10ff97985323f97bfc25f2c36c10e10dc88d5e7a90f1bce32d12" }, "downloads": -1, "filename": "aiobook-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e1c3366b52ee87d854dbdaa73db1c7e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13691, "upload_time": "2019-07-28T16:13:29", "url": "https://files.pythonhosted.org/packages/2e/89/60a3655bbb838b545e1d6a52a77f44523f08f93563f0e1c0d4a3e3c48c43/aiobook-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "761666ded31413bf93ddac4b5f627c03", "sha256": "90bf2e966debe10221df659796bc5a2dfbb987376ee630fbec65b69f092e2ba2" }, "downloads": -1, "filename": "aiobook-0.1.2.tar.gz", "has_sig": false, "md5_digest": "761666ded31413bf93ddac4b5f627c03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10959, "upload_time": "2019-07-28T16:13:31", "url": "https://files.pythonhosted.org/packages/72/88/21a74fe5914098deb41a23fd0552d2167a0cea2c0d35fe73ec6c5a336dc8/aiobook-0.1.2.tar.gz" } ] }