{ "info": { "author": "RyosukeHasebe", "author_email": "hsb.1014@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "LINE Messaging API SDK for Python\n=================================\n\n|Build Status| |PyPI version| |Documentation Status|\n\nSDK of the LINE Messaging API for Python.\n\nIntroduction\n------------\nThe LINE Messaging API SDK for Python makes it easy to develop bots using LINE Messaging API, and you can create a sample bot within minutes.\n\n\nDocumentation\n-------------\n\nSee the official API documentation for more information\n\nEnglish: https://developers.line.biz/en/docs/messaging-api/overview/\n\nJapanese: https://developers.line.biz/ja/docs/messaging-api/overview/\n\nRequirements\n------------\n\n- Python >= 2.7 or >= 3.4\n\nInstallation\n------------\n\n::\n\n $ pip install line-bot-sdk\n\nSynopsis\n--------\n\nUsage:\n\n.. code:: python\n\n from flask import Flask, request, abort\n\n from linebot import (\n LineBotApi, WebhookHandler\n )\n from linebot.exceptions import (\n InvalidSignatureError\n )\n from linebot.models import (\n MessageEvent, TextMessage, TextSendMessage,\n )\n\n app = Flask(__name__)\n\n line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')\n handler = WebhookHandler('YOUR_CHANNEL_SECRET')\n\n\n @app.route(\"/callback\", methods=['POST'])\n def callback():\n # get X-Line-Signature header value\n signature = request.headers['X-Line-Signature']\n\n # get request body as text\n body = request.get_data(as_text=True)\n app.logger.info(\"Request body: \" + body)\n\n # handle webhook body\n try:\n handler.handle(body, signature)\n except InvalidSignatureError:\n print(\"Invalid signature. Please check your channel access token/channel secret.\")\n abort(400)\n\n return 'OK'\n\n\n @handler.add(MessageEvent, message=TextMessage)\n def handle_message(event):\n line_bot_api.reply_message(\n event.reply_token,\n TextSendMessage(text=event.message.text))\n\n\n if __name__ == \"__main__\":\n app.run()\n\nAPI\n---\n\nLineBotApi\n~~~~~~~~~~\n\n\\_\\_init\\_\\_(self, channel\\_access\\_token, endpoint='https://api.line.me', timeout=5, http\\_client=RequestsHttpClient)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nCreate a new LineBotApi instance.\n\n.. code:: python\n\n line_bot_api = linebot.LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')\n\nYou can override the ``timeout`` value for each method.\n\nreply\\_message(self, reply\\_token, messages, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRespond to events from users, groups, and rooms. You can get a\nreply\\_token from a webhook event object.\n\nhttps://developers.line.biz/en/reference/messaging-api/#send-reply-message\n\n.. code:: python\n\n line_bot_api.reply_message(reply_token, TextSendMessage(text='Hello World!'))\n\npush\\_message(self, to, messages, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSend messages to users, groups, and rooms at any time.\n\nhttps://developers.line.biz/en/reference/messaging-api/#send-push-message\n\n.. code:: python\n\n line_bot_api.push_message(to, TextSendMessage(text='Hello World!'))\n\nmulticast(self, to, messages, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSend messages to multiple users at any time.\n\nhttps://developers.line.biz/en/reference/messaging-api/#send-multicast-message\n\n.. code:: python\n\n line_bot_api.multicast(['to1', 'to2'], TextSendMessage(text='Hello World!'))\n\nget\\_profile(self, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGet user profile information.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-profile\n\n.. code:: python\n\n profile = line_bot_api.get_profile(user_id)\n\n print(profile.display_name)\n print(profile.user_id)\n print(profile.picture_url)\n print(profile.status_message)\n\nget\\_group\\_member\\_profile(self, group\\_id, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets the user profile of a member of a group that the bot is in. This can be\nthe user ID of a user who has not added the bot as a friend or has blocked\nthe bot.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-group-member-profile\n\n.. code:: python\n\n profile = line_bot_api.get_group_member_profile(group_id, user_id)\n\n print(profile.display_name)\n print(profile.user_id)\n print(profile.picture_url)\n\nget\\_room\\_member\\_profile(self, room\\_id, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets the user profile of a member of a room that the bot is in. This can be the\nuser ID of a user who has not added the bot as a friend or has blocked the bot.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-room-member-profile\n\n.. code:: python\n\n profile = line_bot_api.get_room_member_profile(room_id, user_id)\n\n print(profile.display_name)\n print(profile.user_id)\n print(profile.picture_url)\n\nget\\_group\\_member\\_ids(self, group\\_id, start=None, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets the user IDs of the members of a group that the bot is in.\nThis includes the user IDs of users who have not added the bot as a friend or has blocked the bot.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-group-member-user-ids\n\n.. code:: python\n\n member_ids_res = line_bot_api.get_group_member_ids(group_id)\n\n print(member_ids_res.member_ids)\n print(member_ids_res.next)\n\nget\\_room\\_member\\_ids(self, room\\_id, start=None, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets the user IDs of the members of a room that the bot is in.\nThis includes the user IDs of users who have not added the bot as a friend or has blocked the bot.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-room-member-user-ids\n\n.. code:: python\n\n member_ids_res = line_bot_api.get_room_member_ids(room_id)\n\n print(member_ids_res.member_ids)\n print(member_ids_res.next)\n\nget\\_message\\_content(self, message\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRetrieve image, video, and audio data sent by users.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-content\n\n.. code:: python\n\n message_content = line_bot_api.get_message_content(message_id)\n\n with open(file_path, 'wb') as fd:\n for chunk in message_content.iter_content():\n fd.write(chunk)\n\nleave\\_group(self, group\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nLeave a group.\n\nhttps://developers.line.biz/en/reference/messaging-api/#leave-group\n\n.. code:: python\n\n line_bot_api.leave_group(group_id)\n\nleave\\_room(self, room\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nLeave a room.\n\nhttps://developers.line.biz/en/reference/messaging-api/#leave-room\n\n.. code:: python\n\n line_bot_api.leave_room(room_id)\n\nget\\_rich\\_menu(self, rich\\_menu\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets a rich menu via a rich menu ID.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-rich-menu\n\n.. code:: python\n\n rich_menu = line_bot_api.get_rich_menu(rich_menu_id)\n print(rich_menu.rich_menu_id)\n\ncreate\\_rich\\_menu(self, rich\\_menu, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nCreates a rich menu.\nYou must upload a rich menu image and link the rich menu to a user for the rich menu to be displayed. You can create up to 10 rich menus for one bot.\n\nhttps://developers.line.biz/en/reference/messaging-api/#create-rich-menu\n\n.. code:: python\n\n rich_menu_to_create = RichMenu(\n size=RichMenuSize(width=2500, height=843),\n selected=False,\n name=\"Nice richmenu\",\n chat_bar_text=\"Tap here\",\n areas=[RichMenuArea(\n bounds=RichMenuBounds(x=0, y=0, width=2500, height=843),\n action=URIAction(label='Go to line.me', uri='https://line.me'))]\n )\n rich_menu_id = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create)\n print(rich_menu_id)\n\ndelete\\_rich\\_menu(self, rich\\_menu\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nDeletes a rich menu.\n\nhttps://developers.line.biz/en/reference/messaging-api/#delete-rich-menu\n\n.. code:: python\n\n line_bot_api.delete_rich_menu(rich_menu_id)\n\nget\\_rich\\_menu\\_id\\_of\\_user(self, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets the ID of the rich menu linked to a user.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-rich-menu-id-of-user\n\n.. code:: python\n\n rich_menu_id = ine_bot_api.get_rich_menu_id_of_user(user_id)\n print(rich_menu_id)\n\nlink\\_rich\\_menu\\_to\\_user(self, user\\_id, rich\\_menu\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nLinks a rich menu to a user. Only one rich menu can be linked to a user at one time.\n\nhttps://developers.line.biz/en/reference/messaging-api/#link-rich-menu-to-user\n\n.. code:: python\n\n line_bot_api.link_rich_menu_to_user(user_id, rich_menu_id)\n\nlink\\_rich\\_menu\\_to\\_users(self, user\\_ids, rich\\_menu\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nLinks a rich menu to multiple users.\n\nhttps://developers.line.biz/en/reference/messaging-api/#link-rich-menu-to-users\n\n.. code:: python\n\n line_bot_api.link_rich_menu_to_users(, )\n\nunlink\\_rich\\_menu\\_from\\_user(self, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUnlinks a rich menu from a user.\n\nhttps://developers.line.biz/en/reference/messaging-api/#unlink-rich-menu-from-user\n\n.. code:: python\n\n line_bot_api.unlink_rich_menu_from_user(user_id)\n\nunlink\\_rich\\_menu\\_from\\_users(self, user\\_ids, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUnlinks rich menus from multiple users.\n\nhttps://developers.line.biz/en/reference/messaging-api/#unlink-rich-menu-from-users\n\n.. code:: python\n\n line_bot_api.unlink_rich_menu_from_users()\n\nget\\_rich\\_menu\\_image(self, rich\\_menu\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nDownloads an image associated with a rich menu.\n\nhttps://developers.line.biz/en/reference/messaging-api/#download-rich-menu-image\n\n.. code:: python\n\n content = line_bot_api.get_rich_menu_image(rich_menu_id)\n with open(file_path, 'wb') as fd:\n for chunk in content.iter_content():\n fd.write(chunk)\n\nset\\_rich\\_menu\\_image(self, rich\\_menu\\_id, content\\_type, content, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nUploads and attaches an image to a rich menu.\n\nhttps://developers.line.biz/en/reference/messaging-api/#upload-rich-menu-image\n\n.. code:: python\n\n with open(file_path, 'rb') as f:\n line_bot_api.set_rich_menu_image(rich_menu_id, content_type, f)\n\nget\\_rich\\_menu\\_list(self, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets a list of all uploaded rich menus.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-rich-menu-list\n\n.. code:: python\n\n rich_menu_list = line_bot_api.get_rich_menu_list()\n for rich_menu in rich_menu_list:\n print(rich_menu.rich_menu_id)\n\nset\\_default\\_rich\\_menu(self, rich\\_menu\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSets the default rich menu.\n\nhttps://developers.line.biz/en/reference/messaging-api/#set-default-rich-menu\n\n.. code:: python\n\n line_bot_api.set_default_rich_menu()\n\nget\\_default\\_rich\\_menu(self, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGets the ID of the default rich menu set with the Messaging API.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-default-rich-menu-id\n\n.. code:: python\n\n line_bot_api.get_default_rich_menu()\n\ncancel\\_default\\_rich\\_menu(self, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nCancels the default rich menu set with the Messaging API.\n\nhttps://developers.line.biz/en/reference/messaging-api/#cancel-default-rich-menu\n\n.. code:: python\n\n line_bot_api.cancel_default_rich_menu()\n\nissue\\_link\\_token(self, user\\_id, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIssues a link token used for the account link feature.\n\nhttps://developers.line.biz/en/reference/messaging-api/#issue-link-token\n\n.. code:: python\n\n link_token_response = line_bot_api.issue_link_token()\n print(link_token_response)\n\nissue\\_channel\\_token(self, client_id, client_secret, grant_type='client_credentials', timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nIssues a short-lived channel access token.\n\nhttps://developers.line.biz/en/reference/messaging-api/#issue-channel-access-token\n\n.. code:: python\n\n channel_token_response = line_bot_api.issue_channel_token(, )\n print(access_token_response)\n\nrevoke\\_channel\\_token(self, access_token, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRevokes a channel access token.\n\nhttps://developers.line.biz/en/reference/messaging-api/#revoke-channel-access-token\n\n.. code:: python\n\n line_bot_api.revoke_channel_token()\n\nget\\_insight\\_message\\_delivery(self, date, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGet the number of messages sent on a specified day.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-number-of-delivery-messages\n\n.. code:: python\n\n insight = line_bot_api.get_insight_message_delivery('20191231')\n print(insight.api_broadcast)\n\nget\\_insight\\_followers(self, date, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nGet the number of users who have added the bot on or before a specified date.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-number-of-followers\n\n.. code:: python\n\n insight = line_bot_api.get_insight_followers('20191231')\n print(insight.followers)\n\nget\\_insight\\_demographic(self, timeout=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nRetrieve the demographic attributes for a bot's friends.\n\nhttps://developers.line.biz/en/reference/messaging-api/#get-demographic\n\n.. code:: python\n\n insight = line_bot_api.get_insight_demographic()\n print(insight.genders)\n\n\u203b Error handling\n^^^^^^^^^^^^^^^^\n\nIf the LINE API server returns an error, LineBotApi raises LineBotApiError.\n\nhttps://developers.line.biz/en/reference/messaging-api/#error-responses\n\n.. code:: python\n\n try:\n line_bot_api.push_message('to', TextSendMessage(text='Hello World!'))\n except linebot.exceptions.LineBotApiError as e:\n print(e.status_code)\n print(e.error.message)\n print(e.error.details)\n\nMessage objects\n~~~~~~~~~~~~~~~\n\nhttps://developers.line.biz/en/reference/messaging-api/#message-objects\n\nThe following classes are found in the ``linebot.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 original_content_url='https://example.com/original.jpg',\n preview_image_url='https://example.com/preview.jpg'\n )\n\nVideoSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n video_message = VideoSendMessage(\n original_content_url='https://example.com/original.mp4',\n preview_image_url='https://example.com/preview.jpg'\n )\n\nAudioSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n audio_message = AudioSendMessage(\n original_content_url='https://example.com/original.m4a',\n duration=240000\n )\n\nLocationSendMessage\n^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n location_message = LocationSendMessage(\n title='my location',\n address='Tokyo',\n latitude=35.65910807942215,\n longitude=139.70372892916203\n )\n\nStickerSendMessage\n^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n sticker_message = StickerSendMessage(\n package_id='1',\n sticker_id='1'\n )\n\nImagemapSendMessage\n^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n imagemap_message = ImagemapSendMessage(\n base_url='https://example.com/base',\n alt_text='this is an imagemap',\n base_size=BaseSize(height=1040, width=1040),\n video=Video(\n original_content_url='https://example.com/video.mp4',\n preview_image_url='https://example.com/video_preview.jpg',\n area=ImagemapArea(\n x=0, y=0, width=1040, height=585\n ),\n external_link=ExternalLink(\n link_uri='https://example.com/see_more.html',\n label='See More',\n ),\n ),\n actions=[\n URIImagemapAction(\n link_uri='https://example.com/',\n area=ImagemapArea(\n x=0, y=0, width=520, height=1040\n )\n ),\n MessageImagemapAction(\n text='hello',\n area=ImagemapArea(\n x=520, y=0, width=520, height=1040\n )\n )\n ]\n )\n\nTemplateSendMessage - ButtonsTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n buttons_template_message = TemplateSendMessage(\n alt_text='Buttons template',\n template=ButtonsTemplate(\n thumbnail_image_url='https://example.com/image.jpg',\n title='Menu',\n text='Please select',\n actions=[\n PostbackAction(\n label='postback',\n display_text='postback text',\n data='action=buy&itemid=1'\n ),\n MessageAction(\n label='message',\n text='message text'\n ),\n URIAction(\n label='uri',\n uri='http://example.com/'\n )\n ]\n )\n )\n\nTemplateSendMessage - ConfirmTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n confirm_template_message = TemplateSendMessage(\n alt_text='Confirm template',\n template=ConfirmTemplate(\n text='Are you sure?',\n actions=[\n PostbackAction(\n label='postback',\n display_text='postback text',\n data='action=buy&itemid=1'\n ),\n MessageAction(\n label='message',\n text='message text'\n )\n ]\n )\n )\n\nTemplateSendMessage - CarouselTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n carousel_template_message = TemplateSendMessage(\n alt_text='Carousel template',\n template=CarouselTemplate(\n columns=[\n CarouselColumn(\n thumbnail_image_url='https://example.com/item1.jpg',\n title='this is menu1',\n text='description1',\n actions=[\n PostbackAction(\n label='postback1',\n display_text='postback text1',\n data='action=buy&itemid=1'\n ),\n MessageAction(\n label='message1',\n text='message text1'\n ),\n URIAction(\n label='uri1',\n uri='http://example.com/1'\n )\n ]\n ),\n CarouselColumn(\n thumbnail_image_url='https://example.com/item2.jpg',\n title='this is menu2',\n text='description2',\n actions=[\n PostbackAction(\n label='postback2',\n display_text='postback text2',\n data='action=buy&itemid=2'\n ),\n MessageAction(\n label='message2',\n text='message text2'\n ),\n URIAction(\n label='uri2',\n uri='http://example.com/2'\n )\n ]\n )\n ]\n )\n )\n\nTemplateSendMessage - ImageCarouselTemplate\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n image_carousel_template_message = TemplateSendMessage(\n alt_text='ImageCarousel template',\n template=ImageCarouselTemplate(\n columns=[\n ImageCarouselColumn(\n image_url='https://example.com/item1.jpg',\n action=PostbackAction(\n label='postback1',\n display_text='postback text1',\n data='action=buy&itemid=1'\n )\n ),\n ImageCarouselColumn(\n image_url='https://example.com/item2.jpg',\n action=PostbackAction(\n label='postback2',\n display_text='postback text2',\n data='action=buy&itemid=2'\n )\n )\n ]\n )\n )\n\nFlexSendMessage\n^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n flex_message = FlexSendMessage(\n alt_text='hello',\n contents=BubbleContainer(\n direction='ltr',\n hero=ImageComponent(\n url='https://example.com/cafe.jpg',\n size='full',\n aspect_ratio='20:13',\n aspect_mode='cover',\n action=URIAction(uri='http://example.com', label='label')\n )\n )\n )\n\n\u203b You can pass a **dict** to FlexSendMessage#contents as follows:\n\n.. code:: python\n\n flex_message = FlexSendMessage(\n alt_text='hello',\n contents={\n type: 'bubble',\n direction: 'ltr',\n hero: {\n type: 'image',\n url: 'https://example.com/cafe.jpg',\n size: 'full',\n aspectRatio: '20:13',\n aspectMode: 'cover',\n action: { type: 'uri', uri: 'http://example.com', label: 'label' }\n }\n }\n )\n\nThus, You can send a JSON designed with `Flex Message Simulator `__.\n\nWith QuickReply\n^^^^^^^^^^^^^^^\n\n.. code:: python\n\n text_message = TextSendMessage(text='Hello, world',\n quick_reply=QuickReply(items=[\n QuickReplyButton(action=MessageAction(label=\"label\", text=\"text\"))\n ]))\n\nWebhook\n-------\n\nWebhookParser\n~~~~~~~~~~~~~\n\n\u203b You can use WebhookParser\n\n\\_\\_init\\_\\_(self, channel\\_secret)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n parser = linebot.WebhookParser('YOUR_CHANNEL_SECRET')\n\nparse(self, body, signature, as_payload=False)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nParses the webhook body, and returns a list of Event objects or a WebhookPayload object (depending on as_payload).\nIf the signature does NOT match, ``InvalidSignatureError`` is raised.\n\n.. code:: python\n\n events = parser.parse(body, signature)\n\n for event in events:\n do_something(event)\n\n.. code:: python\n\n payload = parser.parse(body, signature, as_payload=True)\n\n for event in payload.events:\n do_something(payload.event, payload.destination)\n\nWebhookHandler\n~~~~~~~~~~~~~~\n\n\u203b You can use WebhookHandler\n\n\\_\\_init\\_\\_(self, channel\\_secret)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n handler = linebot.WebhookHandler('YOUR_CHANNEL_SECRET')\n\nhandle(self, body, signature)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nHandles webhooks with **handlers** added\nby the decorators `add <#add-self-event-message-none>`__ and `default <#default-self>`__.\nIf the signature does NOT match, ``InvalidSignatureError`` is raised.\n\n.. code:: python\n\n handler.handle(body, signature)\n\nadd(self, event, message=None)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nAdd a **handler** method by using this decorator.\n\n.. code:: python\n\n @handler.add(MessageEvent, message=TextMessage)\n def handle_message(event):\n line_bot_api.reply_message(\n event.reply_token,\n TextSendMessage(text=event.message.text))\n\nWhen the event is an instance of MessageEvent and event.message is an instance of TextMessage,\nthis handler method is called.\n\n.. code:: python\n\n @handler.add(MessageEvent)\n def handle_message(event, destination):\n # do something\n\nIf the arity of the handler method is more than one,\na destination property in a webhook request is passed to it as the second argument.\n\n.. code:: python\n\n @handler.add(FollowEvent)\n def handle_follow():\n # do something\n\nIf the arity of the handler method is zero, the handler method is called with no arguments.\n\ndefault(self)\n^^^^^^^^^^^^^\n\nSet the default **handler** method by using this decorator.\n\n.. code:: python\n\n @handler.default()\n def default(event):\n print(event)\n\nIf there is no handler for an event, this default handler method is called.\n\nWebhookPayload\n~~~~~~~~~~~~~~~\n\nhttps://developers.line.biz/en/reference/messaging-api/#request-body\n\n- WebhookPayload\n - destination\n - events: list[`Event <#event>`__]\n\nWebhook event object\n~~~~~~~~~~~~~~~~~~~~\n\nhttps://developers.line.biz/en/reference/messaging-api/#webhook-event-objects\n\nThe following classes are found in the ``linebot.models`` package.\n\n`Event `__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- MessageEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - message: `Message <#message>`__\n- FollowEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n- UnfollowEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n- JoinEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n- LeaveEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n- PostbackEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - postback: Postback\n - data\n - params: dict\n- BeaconEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - beacon: Beacon\n - type\n - hwid\n - device_message\n- MemberJoinedEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - joined: Joined\n- MemberLeftEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - left: Left\n- AccountLinkEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - link: Link\n- ThingsEvent\n - type\n - timestamp\n - source: `Source <#source>`__\n - reply\\_token\n - things: DeviceLink | DeviceUnlink | ScenarioResult\n\nSource\n^^^^^^\n\n- SourceUser\n - type\n - user\\_id\n- SourceGroup\n - type\n - group\\_id\n - user\\_id\n- SourceRoom\n - type\n - room\\_id\n - user\\_id\n\nMessage\n^^^^^^^\n\n- TextMessage\n - type\n - id\n - text\n- ImageMessage\n - type\n - id\n - content_provider\n- VideoMessage\n - type\n - id\n - duration\n - content_provider\n- AudioMessage\n - type\n - id\n - duration\n - content_provider\n- LocationMessage\n - type\n - id\n - title\n - address\n - latitude\n - longitude\n- StickerMessage\n - type\n - id\n - package\\_id\n - sticker\\_id\n- FileMessage\n - type\n - id\n - file\\_size\n - file\\_name\n\nHints\n-----\n\nExamples\n~~~~~~~~\n\n`simple-server-echo `__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSample echo-bot using\n`wsgiref.simple\\_server `__\n\n`flask-echo `__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSample echo-bot using `Flask `__\n\n`flask-kitchensink `__\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSample bot using `Flask `__\n\nAPI documentation\n-----------------\n\n::\n\n $ cd docs\n $ make html\n $ open build/html/index.html\n\nOR |Documentation Status|\n\nHelp and media\n--------------\nFAQ: https://developers.line.biz/en/faq/\n\nCommunity Q&A: https://www.line-community.me/questions\n\nNews: https://developers.line.biz/en/news/\n\nTwitter: @LINE_DEV \n\nVersioning\n----------\nThis project respects semantic versioning\n\nSee http://semver.org/\n\nContributing\n------------\nPlease check `CONTRIBUTING `__ before making a contribution.\n\nFor SDK developers\n------------------\n\nFirst install for development.\n\n::\n\n $ pip install -r requirements-dev.txt\n\nRun tests\n~~~~~~~~~\n\nTest by using tox. We test against the following versions.\n\n- 2.7\n- 3.4\n- 3.5\n- 3.6\n- 3.7\n\nTo run all tests and to run ``flake8`` against all versions, use:\n\n::\n\n tox\n\nTo run all tests against version 2.7, use:\n\n::\n\n $ tox -e py27\n\nTo run a test against version 2.7 and against a specific file, use:\n\n::\n\n $ tox -e py27 -- tests/test_webhook.py\n\nAnd more... TBD\n\n.. |Build Status| image:: https://travis-ci.org/line/line-bot-sdk-python.svg?branch=master\n :target: https://travis-ci.org/line/line-bot-sdk-python\n.. |PyPI version| image:: https://badge.fury.io/py/line-bot-sdk.svg\n :target: https://badge.fury.io/py/line-bot-sdk\n.. |Documentation Status| image:: https://readthedocs.org/projects/line-bot-sdk-python/badge/?version=stable\n :target: http://line-bot-sdk-python.readthedocs.io/en/stable\n\nLicense\n--------\n\n::\n\n Copyright (C) 2016 LINE Corp.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/line/line-bot-sdk-python", "keywords": "", "license": "Apache License 2.0", "maintainer": "RyosukeHasebe", "maintainer_email": "hsb.1014@gmail.com", "name": "line-bot-sdk", "package_url": "https://pypi.org/project/line-bot-sdk/", "platform": "", "project_url": "https://pypi.org/project/line-bot-sdk/", "project_urls": { "Homepage": "https://github.com/line/line-bot-sdk-python" }, "release_url": "https://pypi.org/project/line-bot-sdk/1.14.0/", "requires_dist": [ "requests (>=2.0)", "future" ], "requires_python": "", "summary": "LINE Messaging API SDK for Python", "version": "1.14.0" }, "last_serial": 5779612, "releases": { "0.1.0": [], "1.0.0": [ { "comment_text": "", "digests": { "md5": "247b75a60f31860f5c180a0ad6ff9855", "sha256": "b0252ee3719e97f81648ee3b5d73bc4d2bf4aea33d55495bdd8c31dd4cb51c8d" }, "downloads": -1, "filename": "line_bot_sdk-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "247b75a60f31860f5c180a0ad6ff9855", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 31110, "upload_time": "2016-10-14T04:07:48", "url": "https://files.pythonhosted.org/packages/7e/53/028e9693a4d00109520156c0c7abda785e92508d0f23b5559895fed140c0/line_bot_sdk-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5b2d7eeb36cee12a5a8fc888146f07f", "sha256": "22e41fcd94d9784b64b81360fa42223c36968b99b69c902805b1be1560ea17b1" }, "downloads": -1, "filename": "line-bot-sdk-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d5b2d7eeb36cee12a5a8fc888146f07f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39106, "upload_time": "2016-10-14T04:06:53", "url": "https://files.pythonhosted.org/packages/21/fa/1f59f20f0e9ab17633f12c1d5d52d73a0c1cff49a1138bdfcdbd49e1a7bc/line-bot-sdk-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "78ee606ced7b3a816892f191dcc69457", "sha256": "a78cb76baf824bac12aaf5ec3fe34439b2a9488a251a49d3fa84fbc3e0415cab" }, "downloads": -1, "filename": "line_bot_sdk-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "78ee606ced7b3a816892f191dcc69457", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 31443, "upload_time": "2016-10-18T07:02:07", "url": "https://files.pythonhosted.org/packages/53/ad/90adec46d3ec873d58aa25539860cb72c66ad9d903eb91b51bab286c6ecd/line_bot_sdk-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f7219bdcd011677fec6364216f0734d", "sha256": "31dc423766bcddcee6132ebf9931f1742e3ac337c9b78c254f075fb38c0a3d41" }, "downloads": -1, "filename": "line-bot-sdk-1.0.1.tar.gz", "has_sig": false, "md5_digest": "1f7219bdcd011677fec6364216f0734d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36894, "upload_time": "2016-10-18T07:02:04", "url": "https://files.pythonhosted.org/packages/2b/12/397f34cd801c2eac7341e91992fffb3064938bdd2efcc5d8e11516e6fe39/line-bot-sdk-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "68f6123489b47cdd2232af5b4b66b832", "sha256": "38b32a6c9187f8c14dff4e674b39aa123e255cf1f13f091eb950a4c9426a34c2" }, "downloads": -1, "filename": "line_bot_sdk-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68f6123489b47cdd2232af5b4b66b832", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 31760, "upload_time": "2016-10-19T15:51:13", "url": "https://files.pythonhosted.org/packages/4e/6a/65a951f021be256f7d6662b90b91a531b1f5e5d17a060f96ad8d237ebfab/line_bot_sdk-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b988a12397c7b3294610f8db603294a", "sha256": "7bc66024dbaf08a017af1e157b9e13e9fcd54fe8ad0256839540d7deca550691" }, "downloads": -1, "filename": "line-bot-sdk-1.0.2.tar.gz", "has_sig": false, "md5_digest": "5b988a12397c7b3294610f8db603294a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37243, "upload_time": "2016-10-19T15:51:10", "url": "https://files.pythonhosted.org/packages/02/0f/f65b9eccd7c3c369a0f9ba7612b8814d537802b60c4444f7bf4d3fcc5264/line-bot-sdk-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "bebc5aab83d143bbb1c5adf34a8c867a", "sha256": "893bdb75705987bf2a8929e1ae6cf3f16acf79d58155d4a35d5006b4073438af" }, "downloads": -1, "filename": "line_bot_sdk-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bebc5aab83d143bbb1c5adf34a8c867a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 32034, "upload_time": "2017-01-16T08:23:48", "url": "https://files.pythonhosted.org/packages/52/11/1986e17e8a30a77da8be97ee0fcc0527551a84503050a035d85d26ee71cb/line_bot_sdk-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bfbb2162117150f42a792363b1824d24", "sha256": "e8d3fa272a8b01690490d2de0f79a73f09539bffcc6459a5001e6a02757f77c7" }, "downloads": -1, "filename": "line-bot-sdk-1.1.0.tar.gz", "has_sig": false, "md5_digest": "bfbb2162117150f42a792363b1824d24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37793, "upload_time": "2017-01-16T08:23:43", "url": "https://files.pythonhosted.org/packages/d0/f4/0d86fa0e69f554c6cddf76482f42453b4142095ad4d4f6a2df8b2d38469b/line-bot-sdk-1.1.0.tar.gz" } ], "1.10.0": [ { "comment_text": "", "digests": { "md5": "91438f81d0f5c9f15cce1617afd67c8b", "sha256": "f84ba9da3973dd63ace3b455a7d339b24eefed49b97e34599a4f00a18440b99d" }, "downloads": -1, "filename": "line_bot_sdk-1.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "91438f81d0f5c9f15cce1617afd67c8b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 48471, "upload_time": "2019-06-06T11:44:13", "url": "https://files.pythonhosted.org/packages/b7/ae/f52932f4621a2755027b67334def20b09e8b9196e4de1c0fcbd44fd1c89d/line_bot_sdk-1.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0bf93e3eda0f849b5b148d938a1b294d", "sha256": "03b7769b99e6b7f1d24d17615d2b0f8221e815e7797e2d719672d9da7aa4f1ae" }, "downloads": -1, "filename": "line-bot-sdk-1.10.0.tar.gz", "has_sig": false, "md5_digest": "0bf93e3eda0f849b5b148d938a1b294d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58805, "upload_time": "2019-06-06T11:44:07", "url": "https://files.pythonhosted.org/packages/f3/e1/c6ab0f180f1d60a30e7cdbb6fd17f2c22b65b310942d767399cd64b96c67/line-bot-sdk-1.10.0.tar.gz" } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "83d5896f125fee8480cb20da985fd4af", "sha256": "a668f4b3a9ce24b0e26e7c5451e36bfd9dc90eb19e699faf16d6032a743b83e7" }, "downloads": -1, "filename": "line_bot_sdk-1.11.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83d5896f125fee8480cb20da985fd4af", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 46643, "upload_time": "2019-06-14T07:38:14", "url": "https://files.pythonhosted.org/packages/2f/9c/72ff2b1a74db9bdfd4eb00628cbc36b821ea8def6885329ee61421aa3abd/line_bot_sdk-1.11.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7373f095e3cb0d5ea27bc367c72ce41", "sha256": "50cd63ef384fee1936abda439973af906b3d18a7908b77157479290267645d2b" }, "downloads": -1, "filename": "line-bot-sdk-1.11.0.tar.gz", "has_sig": false, "md5_digest": "f7373f095e3cb0d5ea27bc367c72ce41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59373, "upload_time": "2019-06-14T07:38:17", "url": "https://files.pythonhosted.org/packages/60/6e/e224073886856a9fd73762cc98a226c5cbf468e13836c52bbc8969880fae/line-bot-sdk-1.11.0.tar.gz" } ], "1.12.0": [ { "comment_text": "", "digests": { "md5": "4ef2f6d8a07fba916387638769d3b099", "sha256": "09fada3b4f78029e465c790c34e349fca5e36393f550b0cc1fa1bd8b711067de" }, "downloads": -1, "filename": "line_bot_sdk-1.12.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ef2f6d8a07fba916387638769d3b099", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49238, "upload_time": "2019-06-20T08:46:21", "url": "https://files.pythonhosted.org/packages/d6/46/2c746119cd2414c572fc765fc76a9f40d57bb4b9eb480e913ab444bb0c35/line_bot_sdk-1.12.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dca83e8066ef9d32c077389ff96802d5", "sha256": "dc0d255805ae245566500e914e9b2926b200d7f7f765cd9c56a447425ada80f7" }, "downloads": -1, "filename": "line-bot-sdk-1.12.0.tar.gz", "has_sig": false, "md5_digest": "dca83e8066ef9d32c077389ff96802d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66051, "upload_time": "2019-06-20T08:46:23", "url": "https://files.pythonhosted.org/packages/b9/ec/efd3f0c505097970fbe36750f96b29c1afc4ad3c5c910e8fd413f5c62eac/line-bot-sdk-1.12.0.tar.gz" } ], "1.12.1": [ { "comment_text": "", "digests": { "md5": "b6a5e8969bb0fd5551788fe9bf78fb59", "sha256": "e1739b470d21ced464cbab7d3154a2e6283635737d628046960b073917ee6deb" }, "downloads": -1, "filename": "line_bot_sdk-1.12.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b6a5e8969bb0fd5551788fe9bf78fb59", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 49357, "upload_time": "2019-06-25T05:03:07", "url": "https://files.pythonhosted.org/packages/ff/37/0891b4da40964e049a37f291d17516a583a1a68647812b346e9b4969a788/line_bot_sdk-1.12.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f46d31ef3ab54fc99103a114024ef04d", "sha256": "ffa9d94935e9eaf0f84cfbe2717586366a5cb7e1763fd6caf53302cc1fe928cf" }, "downloads": -1, "filename": "line-bot-sdk-1.12.1.tar.gz", "has_sig": false, "md5_digest": "f46d31ef3ab54fc99103a114024ef04d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66902, "upload_time": "2019-06-25T05:03:10", "url": "https://files.pythonhosted.org/packages/64/71/b0e00dc9bbac7ffcfd5b66d67434458d4e0fe94fd4d6e7cc3f1b8c9c9690/line-bot-sdk-1.12.1.tar.gz" } ], "1.13.0": [ { "comment_text": "", "digests": { "md5": "28a951f7bb3432ac1e98e7460ce23422", "sha256": "cd684487ab8442497c741d967f6e97ed33639942b8bf265f51afa9c837be723a" }, "downloads": -1, "filename": "line_bot_sdk-1.13.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "28a951f7bb3432ac1e98e7460ce23422", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 51784, "upload_time": "2019-08-14T05:27:31", "url": "https://files.pythonhosted.org/packages/5e/ad/5534900e16ea803aafe5cba0d21edd3e09f7580b054813067d01a4ec1542/line_bot_sdk-1.13.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff95dc9c0092c77b606137089bc6b018", "sha256": "4c568fd20e8a1845e1112f2fe39455a75a092e26cfea61b08fe17a116a392e1b" }, "downloads": -1, "filename": "line-bot-sdk-1.13.0.tar.gz", "has_sig": false, "md5_digest": "ff95dc9c0092c77b606137089bc6b018", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70070, "upload_time": "2019-08-14T05:27:34", "url": "https://files.pythonhosted.org/packages/14/0e/59ea819df785c2c8f3374c6122af2419e12bf9efa42a8f2842ccab792b71/line-bot-sdk-1.13.0.tar.gz" } ], "1.14.0": [ { "comment_text": "", "digests": { "md5": "db84ac2e418bb00651f25621db6a464b", "sha256": "0d66925e6b94a4a985ff0ca9996c7dd567254a239e3096ae314ce5e622bab308" }, "downloads": -1, "filename": "line_bot_sdk-1.14.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db84ac2e418bb00651f25621db6a464b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52754, "upload_time": "2019-09-04T06:51:40", "url": "https://files.pythonhosted.org/packages/ea/78/79f1b6a7ce1b10e262e3cd99d8b7801a735fb99e9c3df087558416c06051/line_bot_sdk-1.14.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37139f01e92200206c7970a8b6a4c64f", "sha256": "4ba46724fe378a2c2da3f92e022d7a65d5baf427f2647e4f5cc48dcc1a528a36" }, "downloads": -1, "filename": "line-bot-sdk-1.14.0.tar.gz", "has_sig": false, "md5_digest": "37139f01e92200206c7970a8b6a4c64f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72273, "upload_time": "2019-09-04T06:51:43", "url": "https://files.pythonhosted.org/packages/a9/57/1a8161a36e80e905e1d2381ac1c272797ce8e9f3072dec5d65caec0c0b6b/line-bot-sdk-1.14.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "503ad028ad4a17b56ec48b86b2cb63fb", "sha256": "97f087fa55851e9b862a78cd87b38a5ff03780104091b567787cb5a665d7d40c" }, "downloads": -1, "filename": "line_bot_sdk-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "503ad028ad4a17b56ec48b86b2cb63fb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 32166, "upload_time": "2017-04-28T08:05:58", "url": "https://files.pythonhosted.org/packages/2d/05/ef29789c59d2bf277c16a08cd68f7a93ed208fbcfa6bc7441ab3051108e5/line_bot_sdk-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c7e653aa5a2c72abbc598435f307b128", "sha256": "d3e60dcdfcf30c55777daabd77906815e59ecee411dcdfd11741920db6fa6988" }, "downloads": -1, "filename": "line-bot-sdk-1.2.0.tar.gz", "has_sig": false, "md5_digest": "c7e653aa5a2c72abbc598435f307b128", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38085, "upload_time": "2017-04-28T08:05:55", "url": "https://files.pythonhosted.org/packages/17/25/41c0c14b5a04de90fc9453dae5b827efa2e71a78f8ac052f5bbd249dd01f/line-bot-sdk-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "b9d52d83398a7b788fa724f30af2936d", "sha256": "65c996cd1dd5bff6fb4cb393f13945e45796860503873b97a4b139ea75b00b53" }, "downloads": -1, "filename": "line_bot_sdk-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9d52d83398a7b788fa724f30af2936d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 32304, "upload_time": "2017-06-01T08:00:53", "url": "https://files.pythonhosted.org/packages/66/f2/1b82b8f25a0a6e460de4d4f25e9955ca6e64d6ab8277db8e9b5640f9c00c/line_bot_sdk-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "622b144f3655c7d52a40dc0be10855fa", "sha256": "d2ad591c579dfb6fec04d25739375c0bbf0a75e2fd8422aa515de215d1c59088" }, "downloads": -1, "filename": "line-bot-sdk-1.3.0.tar.gz", "has_sig": false, "md5_digest": "622b144f3655c7d52a40dc0be10855fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38249, "upload_time": "2017-06-01T08:00:51", "url": "https://files.pythonhosted.org/packages/9a/24/a51fc3eb22c125675feb82fbba6ec055f9e9773fe43e27f2de2034cc7146/line-bot-sdk-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "3df889220c1747820580ece27ef9f116", "sha256": "051eb984773521a9c1721a158b85975c7b703d7e3f7cc7c3739d9f255df84271" }, "downloads": -1, "filename": "line_bot_sdk-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3df889220c1747820580ece27ef9f116", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 34063, "upload_time": "2017-09-08T09:45:21", "url": "https://files.pythonhosted.org/packages/db/99/7d176d5ab3650d70b0fe8a453ab070f71dfc79b2a17f7f529ba47bf3e8c5/line_bot_sdk-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "331aa6a2b9ba8e0143e657310bfd593c", "sha256": "800f8851db0ed6a6234587582f824a82ce5f2783078d12b43784e09919e6b43b" }, "downloads": -1, "filename": "line-bot-sdk-1.4.0.tar.gz", "has_sig": false, "md5_digest": "331aa6a2b9ba8e0143e657310bfd593c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41641, "upload_time": "2017-09-08T09:45:18", "url": "https://files.pythonhosted.org/packages/96/0f/f55b2922ca141cada92ba3ce3e6cda27d1259264f46f407ce24c0681734c/line-bot-sdk-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "6064be307b7a96c04335b360d13b44ac", "sha256": "4c00380eb9d83a8977229023d23eab7751cad659839da5526a1bc6ae68ac3151" }, "downloads": -1, "filename": "line_bot_sdk-1.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6064be307b7a96c04335b360d13b44ac", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 34200, "upload_time": "2017-09-12T13:08:32", "url": "https://files.pythonhosted.org/packages/5c/32/a9fae5f6836344832bc594e5b941cfa163f374a642ad4c2dcf9d6a12b4b7/line_bot_sdk-1.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3ba353627b0e47f7a9766ee19b59cf3", "sha256": "dbad8e4d7af80e79303c58ed22111f43bc6e4d89ed4d83d5d827204f21828e5a" }, "downloads": -1, "filename": "line-bot-sdk-1.5.0.tar.gz", "has_sig": false, "md5_digest": "b3ba353627b0e47f7a9766ee19b59cf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41915, "upload_time": "2017-09-12T13:08:29", "url": "https://files.pythonhosted.org/packages/55/b1/077d186e76555965bb6b7d19d5f0070b31942ceff507409161ffe8b99639/line-bot-sdk-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "94817a297adb63f40ec6fe52a398d9fa", "sha256": "1592942708c6668163ff6cc268d6303f24fa624984d69fb2f0efc9929a10e1fd" }, "downloads": -1, "filename": "line_bot_sdk-1.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "94817a297adb63f40ec6fe52a398d9fa", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 39732, "upload_time": "2018-06-14T05:38:49", "url": "https://files.pythonhosted.org/packages/17/f7/6babf86d300cd98671c94a695c72b961ce6eb26ccb46a2eabe53edc181e4/line_bot_sdk-1.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d43473c5cf8777a0b3a3aac340a92e35", "sha256": "372d08e2177eafc5ebe3634aef69a35eea3f5e7040102d30a253f75d579ba752" }, "downloads": -1, "filename": "line-bot-sdk-1.6.0.tar.gz", "has_sig": false, "md5_digest": "d43473c5cf8777a0b3a3aac340a92e35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46808, "upload_time": "2018-06-14T05:38:46", "url": "https://files.pythonhosted.org/packages/b1/f5/398cc47d387ba4864d99d47ac92b549e26748418d0369b7fc7f3adfacd29/line-bot-sdk-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "c54dbfb943aae0b62e02a6a5c48887fd", "sha256": "0e7a1347a9d9a0783b0a0f2aad748233f064ab3d08e0a40d40724f364da815e5" }, "downloads": -1, "filename": "line_bot_sdk-1.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c54dbfb943aae0b62e02a6a5c48887fd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43493, "upload_time": "2018-06-21T06:06:31", "url": "https://files.pythonhosted.org/packages/6d/ba/cdd48d6ed72bf92929ea9ae1205d94a9691800d79e4f10166cf94be5bf1e/line_bot_sdk-1.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac087f35024c1d3a1a0a1ca5118ab79f", "sha256": "e1690a0feac70955d3a4f395eebddef1b6a6b094f882272bb42682153fe39f36" }, "downloads": -1, "filename": "line-bot-sdk-1.7.0.tar.gz", "has_sig": false, "md5_digest": "ac087f35024c1d3a1a0a1ca5118ab79f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50417, "upload_time": "2018-06-21T06:06:27", "url": "https://files.pythonhosted.org/packages/ad/03/ae36ca2be87ceec7f9e3f01278b561385caabcc762ee7f64e215e7040360/line-bot-sdk-1.7.0.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "bca108b68f76654f3d4f5ffe52b7879a", "sha256": "abf79b582367a511d183807be34023daa24b96ea1e90eacfe7c2f37e2ad0f228" }, "downloads": -1, "filename": "line_bot_sdk-1.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bca108b68f76654f3d4f5ffe52b7879a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43509, "upload_time": "2018-06-21T15:03:53", "url": "https://files.pythonhosted.org/packages/ea/52/fd7300e8c4b809802dd7b40f09c77a2ee4fb909867c1bb4bcaad27001d3f/line_bot_sdk-1.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "262e78a1634d535b4c391af9cf3ded14", "sha256": "2d0b235b5b310d93da53c7537ba9f10389ac4e0dd5aa08cf024f2008d7aaafda" }, "downloads": -1, "filename": "line-bot-sdk-1.7.1.tar.gz", "has_sig": false, "md5_digest": "262e78a1634d535b4c391af9cf3ded14", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50544, "upload_time": "2018-06-21T15:03:50", "url": "https://files.pythonhosted.org/packages/9d/a1/3b3a46b7af6aaf8995210fbada128773d3c2f07cc44535b24b4668c06892/line-bot-sdk-1.7.1.tar.gz" } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "3b591bf6649ffb28245391dfd3c10387", "sha256": "1b1b8a142a4193c29f76aa9b94b437d43d4506b05700ad56d264f8885ddd61b8" }, "downloads": -1, "filename": "line_bot_sdk-1.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3b591bf6649ffb28245391dfd3c10387", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 43533, "upload_time": "2018-07-02T07:19:15", "url": "https://files.pythonhosted.org/packages/2f/cb/4130935fff8e4d7a588c0d4f8dac618cae9fb1098d52e3f13f98e004f170/line_bot_sdk-1.7.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18570fcd0a5bf0dd35b9bc7090783c20", "sha256": "7aeede4de071aacd7ea319b3553f2095f01a765369b47839430205111d324450" }, "downloads": -1, "filename": "line-bot-sdk-1.7.2.tar.gz", "has_sig": false, "md5_digest": "18570fcd0a5bf0dd35b9bc7090783c20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49933, "upload_time": "2018-07-02T07:19:13", "url": "https://files.pythonhosted.org/packages/62/99/b40bab2f762404b96099a17b45081cd14ebe4d7921af7271e56b762d3a7e/line-bot-sdk-1.7.2.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "e82894ca3afa319080adcb78d8f6b124", "sha256": "054a2cc3beeccd0557e188c4c60be9bc92b031f724fdb6adc35e2bb31fbc7607" }, "downloads": -1, "filename": "line_bot_sdk-1.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e82894ca3afa319080adcb78d8f6b124", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 44655, "upload_time": "2018-08-08T09:46:16", "url": "https://files.pythonhosted.org/packages/92/05/af3c243548080096b2370d749e8859977dd2ee994a8cf2a420c3f1d33ca2/line_bot_sdk-1.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3be8e245e08b2a919c1b82b9a47868e6", "sha256": "cf2b4c0de6714d5b30e35f57db4d668bb234b2d309248e3160c9795ebc98b0fa" }, "downloads": -1, "filename": "line-bot-sdk-1.8.0.tar.gz", "has_sig": false, "md5_digest": "3be8e245e08b2a919c1b82b9a47868e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51071, "upload_time": "2018-08-08T09:46:13", "url": "https://files.pythonhosted.org/packages/27/88/a6a7e2b8b028027b0278c91d9ea59c83da87b7c961c82813c9d2518e6071/line-bot-sdk-1.8.0.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "621f08729919de0579e75d941094e571", "sha256": "1a0fee24ff3916560ff47bc31eddaf1ab76a83e9abb84fdbec47b566e02352c3" }, "downloads": -1, "filename": "line_bot_sdk-1.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "621f08729919de0579e75d941094e571", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 45215, "upload_time": "2019-05-27T08:08:34", "url": "https://files.pythonhosted.org/packages/f8/a5/d99ab76af0479c48717a58d40e3d071de50d141431859c0044e37485b1f3/line_bot_sdk-1.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "60364f43a3ddf4df3ee1cb087af56661", "sha256": "6e3af5efe32dfe370939574cd2ce1a5cbe059742c8dc6813882fcd4267c45a1c" }, "downloads": -1, "filename": "line-bot-sdk-1.9.0.tar.gz", "has_sig": false, "md5_digest": "60364f43a3ddf4df3ee1cb087af56661", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56472, "upload_time": "2019-05-27T08:08:31", "url": "https://files.pythonhosted.org/packages/1e/91/6071d8b7c538a11f780fb6c963b56bdedee8460d6a476c867260934c3882/line-bot-sdk-1.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "db84ac2e418bb00651f25621db6a464b", "sha256": "0d66925e6b94a4a985ff0ca9996c7dd567254a239e3096ae314ce5e622bab308" }, "downloads": -1, "filename": "line_bot_sdk-1.14.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db84ac2e418bb00651f25621db6a464b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 52754, "upload_time": "2019-09-04T06:51:40", "url": "https://files.pythonhosted.org/packages/ea/78/79f1b6a7ce1b10e262e3cd99d8b7801a735fb99e9c3df087558416c06051/line_bot_sdk-1.14.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37139f01e92200206c7970a8b6a4c64f", "sha256": "4ba46724fe378a2c2da3f92e022d7a65d5baf427f2647e4f5cc48dcc1a528a36" }, "downloads": -1, "filename": "line-bot-sdk-1.14.0.tar.gz", "has_sig": false, "md5_digest": "37139f01e92200206c7970a8b6a4c64f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 72273, "upload_time": "2019-09-04T06:51:43", "url": "https://files.pythonhosted.org/packages/a9/57/1a8161a36e80e905e1d2381ac1c272797ce8e9f3072dec5d65caec0c0b6b/line-bot-sdk-1.14.0.tar.gz" } ] }