[PYTHON] Il semble que l'API de messagerie ait été récemment publiée par LINE, j'ai donc créé un BOT qui analyse simplement la morphologie comme d'habitude.

introduction

J'ai fait exactement la même chose avec mon compte d'essai avant, mais j'ai reçu un e-mail menaçant disant "Je vais supprimer tous mes comptes !!", alors j'ai déménagé.

Dépôt

Ce que j'ai fait

https://github.com/nnsnodnb/morphological-linebot

SDK officiel LINE

https://github.com/line/line-bot-sdk-python

BOT

9FlxYyqoOH.png

J'aimerais pouvoir accéder à la [page Wiki] du SDK (https://github.com/line/line-bot-sdk-python/wiki/Projects-Using-SDK) ...

environnement

Code source

bot.py


# coding: utf-8

from __future__ import unicode_literals

from flask import Flask, request, abort

from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError
from linebot.models import MessageEvent, TextMessage, TextSendMessage

from janome.tokenizer import Tokenizer

import os, re, json

def load_env():
    try:
        with open('.env') as f:
            content = f.read()
    except IOError:
        content = ''

    for line in content.splitlines():
        m1 = re.match(r'\A([A-Za-z_0-9]+)=(.*)\Z', line)
        if m1:
            key, val = m1.group(1), m1.group(2)
            m2 = re.match(r"\A'(.*)'\Z", val)
            if m2:
                val = m2.group(1)
            m3 = re.match(r'\A"(.*)"\Z', val)
            if m3:
                val = re.sub(r'\\(.)', r'\1', m3.group(1))
            os.environ.setdefault(key, val)

load_env()

app = Flask(__name__)

line_bot_api = LineBotApi(os.environ.get('CHANNEL_ACCESS_TOKEN'))
handler = WebhookHandler(os.environ.get('CHANNEL_SECRET'))

@app.route("/callback", methods=['POST'])
def callback():
    signature = request.headers['X-LINE-Signature']

    body = request.get_data(as_text=True)
    receive_json = json.loads(body)
    message = receive_json['events'][0]['message']['text']

    response_arrays = []
    t = Tokenizer()
    for token in t.tokenize(message):
        response_arrays.append(str(token))

    response = ''
    for item in range(len(response_arrays)):
        if len(response_arrays) == item + 1:
            response += str(response_arrays[item])
        else:
            response += str(response_arrays[item] + '\n')

    try:
        line_bot_api.reply_message(receive_json['events'][0]['replyToken'], TextSendMessage(text = response))
    except InvalidSignatureError:
        abort(400)

    return 'OK'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port = 8003, threaded = True, debug = True)

.env


CHANNEL_ACCESS_TOKEN='hogehoge' #Mec très long
CHANNEL_SECRET=''					#Celui qui se cache comme avant

Paramètres du côté de l'écran de gestion de la LIGNE

Bien sûr, vous devez utiliser HTTPS, alors faisons de notre mieux!

スクリーンショット 2016-10-21 午前0.45.56.png

Faisons de notre mieux pour atteindre l'écran de gestion de LINE @ et le paramétrer comme vous le souhaitez avec ** "Paramètres du compte" **> ** "Paramètres du bot" **!

Réponse réelle

FullSizeRender.jpg

C'est très difficile à voir ...

finalement

S'il y a quelque chose, je veux que vous soumettiez une pull request, etc.! Veuillez également me donner une page Wiki LINE.

J'étais impatient au début car il n'y a pas de request.headers ['X-LINE-Signature'] dans l'ancienne API et cette nouvelle API. D'ailleurs, dans l'ancienne API, cela correspond à request.headers ['X-Line-Channelsignature'].

Recommended Posts

Il semble que l'API de messagerie ait été récemment publiée par LINE, j'ai donc créé un BOT qui analyse simplement la morphologie comme d'habitude.
J'ai créé un robot Line qui devine le sexe et l'âge d'une personne à partir de l'image
[LINE Messaging API] Je souhaite envoyer un message du programme à tout le monde LINE
En Python, j'ai créé un LINE Bot qui envoie des informations sur le pollen à partir des informations de localisation.
Un script qui facilite la création de menus riches avec l'API de messagerie LINE
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
J'ai fait un bot mou qui m'informe de la température
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
Depuis que j'ai commencé à travailler à des moments différents, j'ai créé un Bot qui me dit l'heure de quitter le travail
[Python] J'ai créé un robot qui me dit la température actuelle lorsque j'entre un nom de lieu sur LINE
J'ai créé un bot Discord en Python qui se traduit quand il réagit
J'ai fait une simple minuterie qui peut être démarrée depuis le terminal