Better alternative: https://github.com/uezo/aiolinebot
Extra feature for LINE Messaging API SDK for Python.
pip install line-bot-sdk-extra
or:
python setup.py install
To use the package:
>>> import linebotx
Allows you to write non-blocking code which makes your bot respond much faster with little changes.
Synchronous:
from linebot import LineBotApi, WebhookHandler
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
handler = WebhookHandler('YOUR_CHANNEL_SECRET')Asynchronous:
from linebotx import LineBotApiAsync, WebhookHandlerAsync
line_bot_api = LineBotApiAsync('YOUR_CHANNEL_ACCESS_TOKEN')
handler = WebhookHandlerAsync('YOUR_CHANNEL_SECRET')| linebotx | linebot |
|---|---|
| LineBotApiAsync | LineBotApi |
| AioHttpClient | HttpClient |
| AioHttpResponse | HttpResponse |
| WebhookHandlerAsync | WebhookHandler |
NOTE: Every public method is coroutine and should be awaited. For example:
@app.route("/callback", methods=['POST'])
async def callback():
...
await handler.handle(body, signature)
...
@handler.add(MessageEvent, message=TextMessage)
async def handle_message(event):
await line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text))- coroutine
LineBotApiAsync.close() - Close underlying http client.
- coroutine
AioHttpClient.close() - See aiohttp.ClientSession.close().
To set a timeout you can pass aiohttp.ClientTimeout object instead of numeric value.
- sanic-echo - Sample echo-bot using sanic.
If you would like to contribute, please check for open issues or open a new issue if you have ideas, changes, or bugs to report.
This project is just a small addition to the original SDK, please refer to line-bot-sdk-python or the docs.