{ "info": { "author": "Sam Chang", "author_email": "t0915290092@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Topic :: Software Development" ], "description": "python-messengerbot-sdk\n===================\n\nSDK of the Facebook Messenger API for Python.\n\nMost code structure were followed by `line-bot-sdk-python `__\n\nInstall\n-------\n\n::\n\n $ pip install python-messengerbot-sdk\n \nSynopsis\n--------\n\nUsage: \n\n.. code:: python\n\n from flask import Flask, request\n\n from facebookbot import (\n FacebookBotApi, WebhookHandler\n )\n\n from facebookbot.models import (\n\n TextMessageEvent, TextSendMessage, TextSendMessage\n )\n\n app = Flask(__name__)\n \n facebook_bot_api = FacebookBotApi(\"YOUR_PAGE_ACCESS_TOKEN\")\n\n handler = WebhookHandler()\n\n\n @app.route('/callback', methods=['GET'])\n def verify():\n # when the endpoint is registered as a webhook, it must echo back\n # the 'hub.challenge' value it receives in the query arguments\n if request.args.get(\"hub.mode\") == \"subscribe\" and request.args.get(\"hub.challenge\"):\n if not request.args.get(\"hub.verify_token\") == \"YOUR_VERIFY_TOKEN\":\n return \"Verification token mismatch\", 403\n return request.args[\"hub.challenge\"], 200\n\n return \"Hello world\", 200\n\n\n @app.route('/callback', methods=['POST'])\n def webhook():\n\n # endpoint for processing incoming messaging events\n\n body = request.get_json()\n\n handler.handle(body)\n\n return \"ok\", 200 \n\n @handler.add(TextMessageEvent)\n def handle_text_message(event):\n facebook_bot_api.push_message(\n event.sender.id,\n message=TextSendMessage(text=event.message.text)\n )\n\n if __name__ == \"__main__\":\n app.run()\n\nAPI\n---\n\nMessengerBotApi\n~~~~~~~~~~\n\n\\_\\_init\\_\\_(self, page\\_access\\_token, endpoint='https://graph.facebook.com', timeout=5, http\\_client=RequestsHttpClient)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nCreate a new FacebookBotApi instance.\n\n.. code:: python\n\n facebook_bot_api = facebookbot.LineBotApi('YOUR_PAGE_ACCESS_TOKEN')\n\nYou can override the ``timeout`` value for each method.\n\npush\\_message(self, user\\_id, message, is\\_sender\\_action = True, timeout = None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSend messages to users\n\n.. code:: python\n\n facebook_bot_api.push_message(user_id, TextSendMessage(text='Hello World!'))\n\nbroadcast(self, message, notification\\_type=\"REGULAR\", timeout = 60)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nbroadcast to all page followers but limited to 10,000 per message.\n\n.. code:: python\n\n facebook_bot_api.broadcast(TextSendMessage(text='Hello World!'))\n\nget\\_profile(self, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGet user profile information.\n\n.. code:: python\n\n profile = facebook_bot_api.get_profile(user_id)\n\n print(profile.first_name)\n print(profile.last_name)\n print(profile.gender)\n print(profile.profile_pic)\n print(profile.locale)\n print(profile.timezone)\n\nsetup\\_started\\_button(self, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nsetup started button, when press it, then responding from GetStartedEvent\n\n.. code:: python\n\n facebook_bot_api.setup_started_button()\n\nsetup\\_persistent\\_menu(self, persistent\\_menus, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nsetup persistent menu\n\n.. code:: python\n\n persistent_menus=[\n PersistentMenu(\n call_to_actions=[\n NestedAction(\n title=\"nested_title\", \n call_to_actions=[\n PostbackAction(title=\"nested_postback\", payload=\"nested_postback\"),\n URLAction(title=\"nested_url\", url='https://example.com/')\n ]\n ),\n PostbackAction(title=\"postback\", payload=\"action=buy&itemid=1\"),\n URLAction(title=\"url\", url='https://example.com/')\n ]\n )\n ]\n\n facebook_bot_api.setup_persistent_menu(persistent_menus)\n \nupload\\_attachment(self, attachment\\_send\\_message, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nupload attachment to reuse and get attachment_id\n\n.. code:: python\n\n image = ImageSendMessage(image_url=\"pic_url.jpg\")\n attachment_id = facebook_bot_api.upload_attachment(image)\n print(attachment_id)\n\nMessage objects\n~~~~~~~~~~~~~~~\n\nThe following classes are found in the ``facebookbot.models`` package.\n\nTextSendMessage\n^^^^^^^^^^^^^^^\n\n.. code:: python\n\n text_message = TextSendMessage(text='Hello, world')\n\nImageSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n image_message = ImageSendMessage(\n image_url='https://example.com/original.jpg',\n is_reusable=True\n )\n\nVideoSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n video_message = VideoSendMessage(\n video_url='https://example.com/original.mp4',\n is_reusable=True\n )\n\nAudioSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n audio_message = AudioSendMessage(\n audio_url='https://example.com/original.m4a',\n is_reusable=True\n )\n \nFileSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n file_message = FileSendMessage(\n file_url='https://example.com/original.pdf',\n is_reusable=True\n )\n\nTemplateSendMessage - ButtonsTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n buttons_template_message = TemplateSendMessage(\n template=ButtonsTemplate(\n text=\"Buttons template\",\n buttons=[\n PostbackAction(\n title=\"postback\",\n payload=\"action=buy&itemid=1\"\n ),\n URLAction(\n title=\"url\", \n url=\"http://example.com/\", \n webview_height_ratio='full', \n messenger_extensions=None, \n fallback_url=None\n )\n ]\n )\n )\n\nTemplateSendMessage - GenericTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n generic_template_message = TemplateSendMessage(\n template=GenericTemplate(\n elements=[\n GenericElement(\n title=\"GenericElement 1\",\n image_url=\"https://example.com/item1.jpg\",\n subtitle=\"description1\",\n default_action=URLAction(url=\"http://example.com/\"),\n buttons=[\n PostbackAction(title=\"postback_1\", payload=\"data_1\"),\n URLAction(\n title=\"url_1\", \n url=\"http://example.com/1\", \n webview_height_ratio='full', \n messenger_extensions=None, \n fallback_url=None\n )\n ]\n ),\n GenericElement(\n title=\"GenericElement 2\",\n image_url=\"https://example.com/item2.jpg\",\n subtitle=\"description2\",\n default_action=URLAction(url=\"http://example.com/\"),\n buttons=[\n PostbackAction(title=\"postback_2\", payload=\"data_2\"),\n URLAction(\n title=\"url_2\", \n url=\"http://example.com/2\", \n webview_height_ratio='compact', \n messenger_extensions=None, \n fallback_url=None\n )\n ]\n ) \n ]\n )\n )\n \nTemplateSendMessage - MediaTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBy attachment_id\n\n.. code:: python\n\n media_template_message = TemplateSendMessage(\n template=MediaTemplate(\n elements=[\n ImageElement(\n attachment_id=attachment_id,\n buttons=[\n PostbackAction(title=\"postback_1\", payload=\"data_1\"),\n URLAction(\n title=\"url_1\", \n url=\"http://example.com/1\", \n webview_height_ratio='full', \n messenger_extensions=None, \n fallback_url=None\n )\n ]\n )\n ]\n )\n )\n\nBy facebook_url\n\n.. code:: python\n\n media_template_message = TemplateSendMessage(\n template=MediaTemplate(\n elements=[\n ImageElement(\n url=\"https://www.facebook.com/photo.php?fbid=\",\n buttons=[\n PostbackAction(title=\"postback_1\", payload=\"data_1\"),\n URLAction(\n title=\"url_1\", \n url=\"http://example.com/1\", \n webview_height_ratio='full', \n messenger_extensions=None, \n fallback_url=None\n )\n ]\n )\n ]\n )\n )\n\n\nHints\n-----\n\nExamples\n~~~~~~~~\n\n`object-example `__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/boompieman/python-messengerbot-sdk", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "python-messengerbot-sdk", "package_url": "https://pypi.org/project/python-messengerbot-sdk/", "platform": "", "project_url": "https://pypi.org/project/python-messengerbot-sdk/", "project_urls": { "Homepage": "https://github.com/boompieman/python-messengerbot-sdk" }, "release_url": "https://pypi.org/project/python-messengerbot-sdk/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Facebook Messaging API SDK for Python", "version": "0.1.0" }, "last_serial": 4908751, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "19c7f2f41ce689c75b37f6651557ffb1", "sha256": "896e8616df969de32325b1ff89221bdb0309a6312e682d70ed2d55bb7a1a7575" }, "downloads": -1, "filename": "python-messengerbot-sdk-0.0.3.tar.gz", "has_sig": false, "md5_digest": "19c7f2f41ce689c75b37f6651557ffb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14475, "upload_time": "2019-03-05T09:54:51", "url": "https://files.pythonhosted.org/packages/ac/86/54487d2f06ca447efb5421db707819787a5a443cd1cb918641093d32d09f/python-messengerbot-sdk-0.0.3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "80da8abbaebd9950e94043b41892c680", "sha256": "bd2231a5da83b4659fea117bb203b01fe7087932fa5a1937ede96667819c4a21" }, "downloads": -1, "filename": "python-messengerbot-sdk-0.1.0.tar.gz", "has_sig": false, "md5_digest": "80da8abbaebd9950e94043b41892c680", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19436, "upload_time": "2019-03-07T07:04:24", "url": "https://files.pythonhosted.org/packages/8e/9b/0ebd291587f3f75b20a6f0fc0fe4da56f899e2d34664b53d355986d3eb99/python-messengerbot-sdk-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "80da8abbaebd9950e94043b41892c680", "sha256": "bd2231a5da83b4659fea117bb203b01fe7087932fa5a1937ede96667819c4a21" }, "downloads": -1, "filename": "python-messengerbot-sdk-0.1.0.tar.gz", "has_sig": false, "md5_digest": "80da8abbaebd9950e94043b41892c680", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19436, "upload_time": "2019-03-07T07:04:24", "url": "https://files.pythonhosted.org/packages/8e/9b/0ebd291587f3f75b20a6f0fc0fe4da56f899e2d34664b53d355986d3eb99/python-messengerbot-sdk-0.1.0.tar.gz" } ] }