[GO] Ich habe Chatbot mit LINE Messaging API und Python erstellt

Einführung

Ich nahm am Sommerpraktikum von Sai Seed Co., Ltd. teil und entwickelte LINE Chatbot. Da die offizielle Version der Messaging-API am 29.9.2016 von LINE angekündigt wurde, habe ich diesmal einen Bot erstellt, der automatisch mit der offiziellen Version antwortet.

[LINE] Ankündigung neuer Entwicklungen für die Entwicklung und Popularisierung von Chatbot, Veröffentlichung einer neuen Messaging-API und offizielle Bereitstellung für Entwickler https://linecorp.com/ja/pr/news/ja/2016/1516

Nachtrag (18.10.2016)

Der Quellcode von bot wurde auf github veröffentlicht. https://github.com/Sciseed/yukko-line-bot

Systemkonfiguration

Die Entwicklungsumgebung ist diesmal wie folgt. ・ Python 3.4.0 ・ Heroku ・ Django 1.8.14

Wie man ... macht

0. Erstellen Sie einen Server

Diesmal habe ich Heroku verwendet und mit Django einen Server eingerichtet. (Ich werde später über den Serveraufbau erklären)

1. Erstellen Sie ein LINE-Geschäftskonto

Registrieren Sie ein Geschäftskonto und erstellen Sie ein Messaging-API-Konto. https://business.line.me/ja/services/bot

2. Legen Sie die Kontoinformationen und die Webhook-URL fest

Ein Channel Access Token wird ausgestellt, wenn Sie ein API-Konto erstellen. Bitte notieren Sie sich, wie es verwendet wird. Die Webhook-URL ist ein Endpunkt, der Sie benachrichtigt, wenn eine Nachricht von LINE gesendet wird. Geben Sie die von Heroku erstellte URL an. (Da die SSL-Kommunikation zum Zeitpunkt der Testversion angegeben wurde, frage ich mich, ob es auch diese Zeit gibt.) (Es scheint, dass die Portnummer 443 nicht erforderlich ist.) webhookurl.jpg

3. Implementieren Sie die BOT-API-Verarbeitung

Erstellen Sie eine Methode unter Bezugnahme auf LINE API-Referenz. Der folgende Code gibt eine vom Benutzer gesendete Nachricht zurück. (Die auf dem Foto unten verwendete API chattet mit der Chat-API von docomo.)

view.py


REPLY_ENDPOINT = 'https://api.line.me/v2/bot/message/reply'

def post_text(reply_token, text):
    header = {
        "Content-Type": "application/json",
        "Authorization": "Bearer {ENTER_ACCESS_TOKEN}"
    }
    payload = {
          "replyToken":reply_token,
          "messages":[
                {
                    "type":"text",
                    "text": text
                }
            ]
    }
    requests.post(REPLY_ENDPOINT, headers=header, data=json.dumps(payload))

4. Versuchte neue Funktionen, die von der Messaging-API hinzugefügt wurden

Ich habe versucht, Carousel mithilfe der neu eingeführten Template Message-Funktion zu implementieren. Es gab mehr Einschränkungen als ich erwartet hatte und es war ein wenig schwierig. Beachten Sie die Begrenzung der Anzahl der Elemente und die Begrenzung der Anzahl der Zeichen in der Beschreibung. Gemäß der Dokumentation müssen Miniaturansichten auch über HTTPS gesendet werden (nicht sicher, ob sie über HTTP gesendet werden können).

Auf dem LINE-Chat-Bildschirm "Was ist das empfohlene Restaurant?" "Sag mir einen guten Ort zum Mittagessen." Eine solche, "Restaurant" "Mittagessen" und "Empfohlen" "Sag es mir" Wenn Sie einen Satz eingeben, der usw. enthält, wird das Karussell angezeigt.

views.py



def post_carousel(reply_token):
    header = {
        "Content-Type": "application/json",
        "Authorization": "Bearer {ENTER_ACCESS_TOKEN}"
    }
    payload = {
          "replyToken":reply_token,
          "messages":[
              {
                "type": "template",
                "altText": "Empfohlenes Restaurant",
                "template": {
                    "type": "carousel",
                    "columns": [

                        {
                          "thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/hamburger_240.jpeg ",
                          "title": "Junk Burger",
                          "text": "Egal wer es sagt, der König der Junk Food ist immer noch ein Hamburger.",
                          "actions": [

                              {
                                  "type": "uri",
                                  "label": "Details anzeigen",
                                  "uri": "http://example.com/page/222"
                              }
                          ]
                        },
                        {
                          "thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/pizza_240.jpeg ",
                          "title": "pizza cap",
                          "text": "Authentisches Neapel schmeckt schnell und günstig. Es ist ein Pizza-Fachgeschäft mit 17 Geschäften in Tokio.",
                          "actions": [
                          
                              {
                                  "type": "uri",
                                  "label": "Details anzeigen",
                                  "uri": "http://example.com/page/222"
                              }
                          ]
                        },
                        {
                          "thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/bread_240.jpeg ",
                          "title": "Authentisches Brotstudio Takeyoshi",
                          "text": "Was ist Ihrer Meinung nach am wichtigsten für Brot? Takeyoshi glaubt, dass das Backen der Oberfläche das Leben ist.",
                          "actions": [
                          
                              {
                                  "type": "uri",
                                  "label": "Details anzeigen",
                                  "uri": "http://example.com/page/222"
                              }
                          ]
                        },
                        {
                          "thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/harumaki_240.jpeg ",
                          "title": "Vietnam Tokio",
                          "text": "Ein traditionsreiches vietnamesisches Restaurant in Higashi Ikebukuro. Wir bieten vietnamesisches Essen an, das seit über 40 Jahren von Menschen geliebt wird.",
                          "actions": [
                          
                              {
                                  "type": "uri",
                                  "label": "Details anzeigen",
                                  "uri": "http://example.com/page/222"
                              }
                          ]
                        },
           
                    ]
                }
              }
            ]
    }
    req = requests.post(REPLY_ENDPOINT, headers=header, data=json.dumps(payload))

5. Fertigstellung

Ich konnte es relativ schnell machen. Im Vergleich zur vorherigen Testversion war die Dokumentation leichter zu verstehen und daher viel einfacher zu entwickeln als erwartet.

Bitte füge Freunde zu LINE hinzu und probiere es aus! ^^ 友だち追加数

Tips ・ Wenn beim Senden einer Nachricht "... ich kann nicht einzeln mit diesem Konto antworten ..." zurückgegeben wird, funktioniert die automatische Antwortfunktion, also LINE @ MANAGER → Kontoeinstellungen → Bot-Einstellungen → Automatische Antwort Wenn Sie die Nachricht vorübergehend deaktivieren, wird sie beantwortet.

Zusammenfassung

In der Testversion wurden einige weitere Funktionen hinzugefügt. Die Entwicklung der Sprachverarbeitung schreitet ebenfalls voran, und es scheint, dass immer mehr hochwertige und multifunktionale Chatbots geboren werden. Cyseed, der diesmal als Praktikant teilgenommen hat, nutzt die Verarbeitung natürlicher Sprache und maschinelles Lernen, um Studenten der Arbeitssuche "Jobsuche My Concier" qualitativ hochwertige Ratschläge zu geben. Wir entwickeln einen LINE-Service. Es scheint, dass Ingenieurpraktikanten jederzeit eingestellt werden.

Fortsetzung Artikel

Ich habe einen Chatbot mit LINE Messaging API und Python erstellt (2)

Referenz

Ich habe versucht, mein eigenes Highschool-Mädchen BOT mit LINE BOT (Python & Heroku) zu machenLINE BOT kostenlos mit Heroku verschiebenLINE API-ReferenzZusammenfassung beim Bereitstellen der Django-App auf HerokuIch habe versucht, LINE BOT mit Python mithilfe der LINE BOT-API zu erstellen

Recommended Posts

Ich habe Chatbot mit LINE Messaging API und Python erstellt
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Ich habe einen Line-Bot mit Python gemacht!
Ich habe versucht, LINE-Bot mit Python + Flask + ngrok + LINE Messaging API zu erstellen
Python Qiita API Wrapper "qiipy" gemacht
Ich habe einen Python-Text gemacht
Ich habe einen Anmelde- / Abmeldevorgang mit Python's Bottle durchgeführt.
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
Ich habe mit Python eine Lotterie gemacht.
[Python] Ich habe einen Line-Bot erstellt, der zufällig nach englischen Wörtern fragt
Ich habe eine Python-Bibliothek erstellt, um die API von LINE WORKS aufzurufen
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Ich habe eine Python-Wrapper-Bibliothek für die Docomo-Bilderkennungs-API erstellt.
Ich habe einen Chat-Chat-Bot mit Tensor2Tensor erstellt und diesmal hat es funktioniert
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe mit Python einen Zeichenzähler erstellt
Anfänger: Ich habe einen Launcher mit dem Wörterbuch erstellt
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe mit Python eine Hex-Map erstellt
Nachdem ich Python3 studiert hatte, machte ich einen Slackbot
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich habe mit Python einen einfachen Blackjack gemacht
Ich habe mit Python eine Einstellungsdatei erstellt
Ich habe mit Python einen Neuronensimulator erstellt
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich habe einen Stempelersatzbot mit Linie gemacht
Ich habe eine Python-Wörterbuchdatei für Neocomplete erstellt
Ich habe mit Python eine Bot-Wettervorhersage gemacht.
Ich habe versucht, Web-Scraping mit Python und Selen
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
Ich habe versucht, mit Python einen Twitter-Blocker für faule Mädchen zu machen
Ich habe eine Klasse in Python3 und Java geschrieben
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.
Ich habe einen LINE Bot mit Serverless Framework erstellt!
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe mit Python ein Bin-Picking-Spiel gemacht
Mattermost Bot mit Python gemacht (+ Flask)
[LINE Messaging API] Ich möchte eine Nachricht vom Programm an alle LINE senden
Ich habe einen Zeilenbot erstellt, der Python verwendet, um ungelesene E-Mails aus Google Mail abzurufen!
[Für Anfänger] Ich habe mit Raspberry Pi einen menschlichen Sensor erstellt und LINE benachrichtigt!
Ich habe mit Python und BigQuery ein internes Peer-Bonus-Tool (nur Aggregation) erstellt
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
〇✕ Ich habe ein Spiel gemacht
[AWS] Ich habe BOT mit LINE WORKS daran erinnert
Ich habe einen Twitter BOT mit GAE (Python) gemacht (mit einer Referenz)
Ich habe mit LINE Bot ein Haushaltsbuch für Bot erstellt
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
Ich habe mit Python ein Weihnachtsbaum-Beleuchtungsspiel gemacht
Ich habe mit Python eine App für die Benachrichtigung über Netznachrichten erstellt