[PYTHON] Hanashi, der beim Versuch, eine morphologische Analyse BOT mit der beliebten LINE BOT API durchzuführen, zum BOT durchgelesen wurde

Hintergrund

In letzter Zeit ist die LINE BOT API auf der Straße beliebt (ist es spät zu bemerken?) Nach offiziellen Ankündigungen und Pressemitteilungen

Was ist "BOT API-Testkonto"? Mit dem BOT API-Testkonto können Sie die API-Entwicklung ausprobieren, die eine bidirektionale Kommunikation zwischen Ihrem Service und LINE-Benutzern ermöglicht. Einführung des BOT API-Testkontos | LINE Business Center

Öffnen Sie sich vor der Eröffnung einer Messaging-API für die ersten 10.000 Entwickler von Drittanbietern, mit der Unternehmenskonten auf unterhaltsame Weise mit Benutzern interagieren können.

Sie können ein Bot-Konto erstellen, das Nachrichten über die API sendet und empfängt, indem Sie das vom Benutzer entwickelte System oder den vom Benutzer entwickelten Dienst mit dem LINE-Konto verknüpfen. Wird voraussichtlich in verschiedenen Anwendungen und Bereichen verwendet, z. B. bei der Benachrichtigung über Zeitpläne und der Ausgabe von Gutscheinen im Zusammenhang mit Such- und Zeitplan-Apps für Restaurants sowie beim Betrieb über LINE durch Verknüpfung mit Hardware wie Haushaltsgeräten. ITmedia LINE BOT API-Nachrichten

Möglichkeit eines Eins-zu-Eins-Marketings? スクリーンショット 2016-08-04 1.52.29.png

http://lbc.line.me/ Als

Es gab eine Person, die etwas Interessantes machte, und ich wollte es nachahmen. ・ Die Geschichte der Erstellung eines BOT mit AWS Lamda, der Bilder mit Google Cloud Vision analysiert, weil die LINE-API veröffentlicht wurde

Geschichte der Implementierung von BOT, das die Übersetzung englischer Wörter mit der LINE BOT-API lehrt

Suche nach dem heutigen Mittagessen mit der LINE BOT API Es scheint, dass es mit der Google-API verbunden ist

Was ich getan habe

・ Registrieren Sie ein BOT API-Testkonto ・ Registrierung der Rückruf-URL -Server IP Whitelist-Einstellungen (Registrieren Sie die IP-Adresse, die beim Senden einer Nachricht zulässig ist) ・ Erstellung eines morphologischen Analysecodes

Generell Stolperpunkt -Die Rückruf-URL muss verschlüsselt sein. Außerdem muss Port 443 (SSL-Portnummer) angegeben werden (https: //○○○○.ssl-xserver.jp:443/linebot/callback.py). -Der eingestellte Rückruf wird langsam wiedergegeben. -Die Reflexion der Server IP Whitelist ist ebenfalls langsam.

Registrierungsablauf

Registriert von LINE Business Center, wurde gesagt, dass die ersten 10.000 Personen, aber wahrscheinlich nicht スクリーンショット 2016-08-04 1.37.10.png

Geben Sie es einfach normal ein.

Sobald die Registrierung abgeschlossen ist · Kanal ID ・ Kanalgeheimnis ・ MITTE Sie können 3 Schlüssel bekommen. Dies ist der Code, der beim Anfordern einer API-Anforderung im Anforderungsheader festgelegt wird.

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

Server

Einige Leute sind AWS, andere sind Mietserver und andere sind Heroku (PaaS?). Dieses Mal habe ich den Mietserver Xserver verwendet. スクリーンショット 2016-08-04 1.58.37.png Klicken Sie auf SSL-Einstellungen

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

Richten Sie einfach ein gemeinsames SSL ein. Beschreiben Sie die festgelegte URL (https: //○○○○.ssl-xserver.jp) als Rückruf-URL im Dashboard der LINE-Entwickler

Morphologische Analyse

Die Sprache ist Python. Ich habe auf [diese Site] verwiesen (http://nnsnodnb.hatenablog.jp/entry/line-bot-made-flask).

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('Autor', 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'], 'Unter Analyse...')
            #Morphologische Analyse
            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)

Laden Sie dies mit FTP-Software auf den Server hoch!

Sollte sein! !! !!

Nicht morphologisch analysiert Durchlesen IMG_0466.JPG

Ich weiß nicht, ob es sich um einen Codefehler handelt oder ob ich darauf warte, dass die Rückruf-URL angezeigt wird, aber ich werde etwas länger warten

Wenn Sie es mit dem durchgelesenen BOT sehen möchten, schließen Sie bitte Freunde (kann ohne vorherige Ankündigung gelöscht werden) スクリーンショット 2016-08-04 2.08.42.png

Am Ende

Je nachdem, wie ich es gemacht habe, war es für Einzelpersonen einfach, BOTs mit praktischen Funktionen und BOTs zu erstellen, die in der Geschäftsszene glänzen (obwohl ich die Morphologie nicht analysieren durfte ...). Es scheint, dass Chatbots auch in der Nachbarschaft beliebt sind.

Ich habe auch das Gefühl, dass es einen anderen Ansatz gab, wenn ich Kenntnisse über den Server hatte

Es ist schon eine Weile her, dass das Durchlesen so schmerzhaft war.

Jemand, der das Gleiche geschrieben hat http://naoyashiga.hatenablog.com/entry/2016/04/12/123312

Referenzierte Site

Ich habe mit Python + Flask einen LINE-Bot erstellt http://nnsnodnb.hatenablog.jp/entry/line-bot-made-flask

Einführung in 21 Beispiele für LineBot http://blog.minato.jp.net/entry/linebot

Verwendung der LINE-API (BOT-API), die von Einzelpersonen verwendet werden kann (PHP). Die Testversion kann von den ersten 10.000 Personen verwendet werden! https://www.panzee.biz/archives/9115 LINE Entwickler BOT API offiziell https://developers.line.me/bot-api/overview

Recommended Posts

Hanashi, der beim Versuch, eine morphologische Analyse BOT mit der beliebten LINE BOT API durchzuführen, zum BOT durchgelesen wurde
Machen Sie mit LINE + Flask einen morphologischen Analyse-Bot
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
Ich habe einen LINE BOT erstellt, der mithilfe der Flickr-API ein Bild von Reis-Terroristen zurückgibt
Senden Sie eine Push-Nachricht an LINE Bot, wenn die LTE-M-Taste gedrückt wird [SORACOM]
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)
Erstellen Sie mithilfe der Twitter-Streaming-API einen Echtzeit-Bot für die automatische Antwort
Lassen Sie uns einen LINE-Bot mit verschiedenen Diensten erstellen [ngrok edition]
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
Machen Sie einen LINE BOT (Chat)