[PYTHON] Hanashi qui est devenu un BOT en lecture en essayant de faire un BOT d'analyse morphologique en utilisant la populaire API LINE BOT

Contexte

Récemment, l'API LINE BOT est populaire dans les rues (est-il tard pour le remarquer?) Selon les annonces officielles et les communiqués de presse

Qu'est-ce que "Compte d'essai de l'API BOT"? Avec le compte d'essai d'API BOT, vous pouvez essayer le développement d'API qui permet une communication bidirectionnelle entre votre service et les utilisateurs LINE. Présentation du compte d'essai de l'API BOT | LINE Business Center

Ouvert aux 10 000 premiers développeurs tiers avant l'ouverture d'une API de messagerie qui permet aux comptes d'entreprise d'interagir avec les utilisateurs de manière conversationnelle.

Vous pouvez créer un compte bot qui envoie et reçoit des messages via l'API en liant le système ou le service développé par l'utilisateur avec le compte LINE. Devrait être utilisé dans diverses applications et domaines, tels que la notification de planification et l'émission de coupons liés à la recherche de restaurants et aux applications de planification, et le fonctionnement de LINE en se connectant à du matériel tel que des appareils ménagers. Actualités de l'API ITmedia LINE BOT

Possibilité de marketing individuel? スクリーンショット 2016-08-04 1.52.29.png

http://lbc.line.me/ Que

Il y avait une personne qui faisait quelque chose d'intéressant et je voulais l'imiter. ・ L'histoire de la création d'un BOT avec AWS Lamda qui analyse les images à l'aide de Google Cloud Vision, car l'API LINE a été publiée

Histoire de la mise en œuvre de BOT qui enseigne la traduction de mots anglais avec l'API LINE BOT

Rechercher le déjeuner d'aujourd'hui avec l'API LINE BOT Il semble qu'il soit connecté à l'API de Google

Ce que j'ai fait

・ Enregistrez un compte d'essai d'API BOT ・ Enregistrement de l'URL de rappel -Paramètres de la liste blanche des adresses IP du serveur (enregistrez l'adresse IP autorisée lors de l'envoi d'un message) ・ Création d'un code d'analyse morphologique

Point d'achoppement de manière générale -L'URL de rappel doit être cryptée. Et il est nécessaire de spécifier le port 443 (numéro de port SSL) (https: //○○○○.ssl-xserver.jp:443/linebot/callback.py) -Le rappel défini est reflété lentement. -Le reflet de la liste blanche d'adresses IP du serveur est également lent.

Flux d'inscription

Enregistré depuis LINE Business Center, il a été dit que les 10 000 premières personnes, mais probablement pas スクリーンショット 2016-08-04 1.37.10.png

Entrez-le simplement normalement.

Une fois l'inscription terminée · Identifiant de la chaine ・ Secret de chaîne ・ MID Vous pouvez obtenir 3 clés. C'est le code qui sera défini dans l'en-tête de la requête lors d'une requête API.

スクリーンショット 2016-08-04 1.37.52.png

serveur

Certaines personnes sont AWS, d'autres sont des serveurs de location et d'autres sont Heroku (PaaS?). Cette fois, j'ai utilisé le serveur de location Xserver. スクリーンショット 2016-08-04 1.58.37.png Cliquez sur Paramètres SSL

スクリーンショット 2016-08-04 1.58.50.png

Configurez simplement un SSL commun. Décrivez l'URL définie (https: //○○○○.ssl-xserver.jp) comme URL de rappel sur le tableau de bord des développeurs LINE

Analyse morphologique

Le langage est Python. J'ai fait référence à ce site.

callback.py


from flask import Flask
from flask import request

from janome.tokenizer import Tokenizer

import requests
import json
import re

import settings

LINEBOT_API_EVENT ='https://trialbot-api.line.me/v1/events'
LINE_HEADERS = {
    'Content-type': 'application/json; charset=UTF-8',
    'X-Line-ChannelID':settings.CHANNEL_ID,
    'X-Line-ChannelSecret':settings.CHANNEL_SECRET,
    'X-Line-Trusted-User-With-ACL':settings.MID
}

def post_event(to, content):
    msg = {
        'to': [to],
        'toChannel': 1383378250,
        'eventType': "138311608800106203",
        'content': content
    }
    r = requests.post(LINEBOT_API_EVENT, headers = LINE_HEADERS, data = json.dumps(msg))

def post_text(to, text):
    content = {
        'contentType':1,
        'toType':1,
        'text':text,
    }
    post_event(to, content)


commands = (
    (re.compile('auteur', 0), lambda x: 'https://nnsnodnb.moe'),
)

app = Flask(__name__)

@app.route("/callback", methods=['POST'])
def callback():
    messages = request.json['result']

    for message in messages:
        text = message['content']['text']
        for matcher, action in commands:
            if matcher.search(text):
                response = action(text)
                break
        else:
            post_text(message['content']['from'], 'Sous analyse...')
            #Analyse morphologique
            response = ''
            t = Tokenizer()
            for token in t.tokenize(message['content']['text']):
                response += str(token) + '\n'
        post_text(message['content']['from'], response)
    return ''

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

Téléchargez ceci sur le serveur avec le logiciel FTP!

Devrait être! !! !!

Non analysé morphologiquement Lire à travers IMG_0466.JPG

Je ne sais pas si c'est une erreur de code ou si j'attends que l'URL de rappel soit reflétée, mais j'attendrai encore un peu

Si vous voulez le voir en utilisant le BOT de lecture, veuillez vous faire des amis (peut être supprimé sans préavis) スクリーンショット 2016-08-04 2.08.42.png

À la fin

Selon la façon dont je l'ai fait, j'ai senti qu'il était facile pour les particuliers de créer des BOT avec des fonctions pratiques et des BOT qui brillent dans la scène commerciale (même si je n'étais pas autorisé à analyser la morphologie ...). Il semble que les chatbots soient également populaires dans le quartier.

J'ai aussi l'impression qu'il y avait une approche différente si j'avais des connaissances autour du serveur

Cela faisait un moment que la lecture était si douloureuse.

Il y a une personne qui écrit la même chose, et un mystérieux sentiment d'intimité http://naoyashiga.hatenablog.com/entry/2016/04/12/123312

Site référencé

J'ai créé un bot LINE avec Python + Flask http://nnsnodnb.hatenablog.jp/entry/line-bot-made-flask

Présentation de 21 exemples de LineBot http://blog.minato.jp.net/entry/linebot

Comment utiliser l'API LINE (API BOT) utilisable par des particuliers (PHP). La version d'essai peut être utilisée par les 10 000 premières personnes! https://www.panzee.biz/archives/9115 Développeurs LINE BOT API officiel https://developers.line.me/bot-api/overview

Recommended Posts

Hanashi qui est devenu un BOT en lecture en essayant de faire un BOT d'analyse morphologique en utilisant la populaire API LINE BOT
Faire un bot d'analyse morphologique de manière lâche avec LINE + Flask
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
Envoyer un message Push à LINE Bot lorsque le bouton LTE-M est enfoncé [SORACOM]
Comment créer un LINE BOT 004 interactif (répondre à la date de clôture d'une société cotée)
Créez un robot de réponse automatique en temps réel à l'aide de l'API Twitter Streaming
Créons un bot LINE en utilisant divers services [ngrok edition]
[Python] J'ai essayé de créer un programme simple qui fonctionne sur la ligne de commande en utilisant argparse
Créer un LINE BOT (chat)