Advertisement
Guest User

Untitled

a guest
Aug 17th, 2019
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. from flask import Flask, request, abort
  2. import json
  3. import rules
  4.  
  5.  
  6. from linebot import (
  7. LineBotApi, WebhookHandler
  8. )
  9. from linebot.exceptions import (
  10. InvalidSignatureError
  11. )
  12. from linebot.models import (
  13. MessageEvent, TextMessage, TextSendMessage,
  14. )
  15.  
  16. app = Flask(__name__)
  17. app.config['ACCESS_TOKEN'] = 'xxx'
  18. app.config['CHANNEL_SECRET'] = 'xxx'
  19.  
  20. line_bot_api = LineBotApi(app.config['ACCESS_TOKEN'])
  21. handler = WebhookHandler(app.config['CHANNEL_SECRET'])
  22.  
  23.  
  24. @app.route("/callback", methods=['POST'])
  25. def callback():
  26. # get X-Line-Signature header value
  27. signature = request.headers['X-Line-Signature']
  28.  
  29. # get request body as text
  30. body = request.get_data(as_text=True)
  31.  
  32. # handle webhook body
  33. try:
  34. handler.handle(body, signature)
  35. except InvalidSignatureError:
  36. abort(400)
  37.  
  38. return 'OK'
  39.  
  40.  
  41. @handler.add(MessageEvent, message=TextMessage)
  42. def handle_message(event):
  43. event_data = json.loads(str(event))
  44. text = event_data['message']['text']
  45. resp = rules.select(text)
  46. if resp is not None:
  47. line_bot_api.reply_message(
  48. event.reply_token,
  49. TextSendMessage(text=resp)
  50. )
  51.  
  52.  
  53. if __name__ == "__main__":
  54. app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement