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.