Exemple #1
0
class Api():
    def __init__(self, token, secret):
        self._app = Flask(__name__)
        self._api = LineBotApi(token)
        self._handler = WebhookHandler(secret)

        self.route()

    @_handler.add(MessageEvent, message=TextMessage)
    def callback(self):
        signature = request.headers['X-Line-Signature']

        body = request.get_data(as_text=True)
        self._app.logger.info("Request body: " + body)

        print(body, signature)
        self._handler.handle(body, signature)

        return 'OK'

    # @handler.add(MessageEvent, message=TextMessage)
    def pretty_echo(self, event):
        self._api.reply_message(event.reply_token,
                                TextSendMessage(text='text'))

    def route(self):
        self._handler.add(MessageEvent, message=TextMessage)

        self._app.add_url_rule('/callback',
                               methods=['POST'],
                               view_func=self.callback)

    def run(self, port=8080):
        self._app.run(port=port)
Exemple #2
0
    id = db.Column(db.Integer,primary_key=True)
    groupid = db.Column(db.String(),nullable=False) 
    def __init__(self, groupid):
        self.groupid = groupid
@app.route("/callback", methods=['POST'])
def callback():
    # get X-Line-Signature header value
    signature = request.headers['X-Line-Signature']

    # get request body as text
    body = request.get_data(as_text=True)
    # handle webhook body
    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        abort(400)

    return ''

@handler.add(JoinEvent)
def shiyoya(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text="月に2〜5回ランダムで突然飲みたがります!どうぞよろしく!!"))
    groupid = event.source.group_id
    reg = Ids(groupid)
    db.session.add(reg)
    db.session.commit()
if __name__ == '__main__':
    app.run()
Exemple #3
0
@contextlib.contextmanager
def stdoutIO(stdout=None):
    old = sys.stdout
    if stdout is None:
        stdout = StringIO()
    sys.stdout = stdout
    yield stdout
    sys.stdout = old

def open(*args,**kwargs):
    raise IOError

def dir(*args,**kwargs):
    raise IOError

@composed(handler.add(MessageEvent, message=TextMessage))
def handle_message(event):
    profile = line_bot_api.get_profile(event.source.user_id)
    id = str(profile.user_id)
    if(id not in EnterInput.user_input):
        EnterInput.user_input[id]=[]
        
    if(id not in EnterInput.input):
        EnterInput.input[id] = False
    
    if(EnterInput.input[id]):
        get_message = event.message.text
        case = get_message.split("\n")
        EnterInput.user_input[id] = case[:]
        EnterInput.input[id] = False
        reply_message = TextSendMessage(text="Now enter your program")