Ich habe versucht, mein eigenes High-School-Mädchen BOT im Rinna-Stil mit LINE BOT (Python & Heroku) zu machen.

Es scheint, dass die Server-IP-Whitelist von LINE BOT optional geworden ist, daher habe ich den Teil der Heroku-Einstellungen für das Fixie-Addon und die Server-IP-Whitelist aus dem Verfahren im Artikel entfernt. Dies sollte auch dann funktionieren, wenn Sie Fixie + Server IP Whitelist separat festlegen.

[[Gute Nachrichten] Die Server-IP-Whitelist von LINE BOT ist jetzt optionales Memorandum des Niwaka Server-Shops](http://architect.hatenadiary.jp/entry/2016/05/18/%E3%80%90 % E6% 9C% 97% E5% A0% B1% E3% 80% 91LINE_BOT_% E3% 81% AE_Server_IP_Whitelist_% E3% 81% 8COptional% E3% 81% AB% E3% 81% AA% E3% 81% A3% E3 % 81% A6% E3% 81% 9F_1)


Der BOT-Bereich ist sehr aufregend. Die LINE BOT-API wurde am 7. April letzter Woche nach Verfügbarkeit geöffnet, daher habe ich versucht, sie zu überprüfen.

[LINE] Vor der Eröffnung der Messaging-API ist das "BOT-API-Testkonto", mit dem die ersten 10.000 Personen BOT-Konten frei entwickeln können, jetzt kostenlos verfügbar.| LINE Corporation |Nachrichten

Außerdem habe ich für diese Überprüfung auf die folgenden Artikel verwiesen. Vielen Dank.

Überblick

Ihr eigener Bot Linna im Stil einer Highschool-Mädchen wird Ihre LINE-Freundin und chattet endlos auf LINE. Der Dialogmechanismus verwendet die Chat-Dialog-API von Docomo. In der Chat-Dialog-API wird die Kansai Ben-Highschool-Mädchenfigur (Sakurako?) Angegeben, also fühle ich mich so. Das Bild ist auch ein Material für Highschool-Mädchen, das ich von Pakutaso bekommen habe, also ist die Atmosphäre perfekt.

Das Folgende ist ein Operationsbild. IMG_4208.PNG

Anscheinend scheinen es beide Gefühle zu sein.

Wie benutzt man

Mit Heroku kann jeder mit einem Klick bereitstellen, indem er die Heroku-Schaltfläche vorbereitet. Heroku ist unglaublich!

Die folgenden Konten sind jedoch erforderlich, um tatsächlich zu funktionieren. Erstellen Sie vor der Bereitstellung ein Konto.

Nachdem Sie diese vorbereitet haben, drücken Sie bitte die Heroku-Taste über den unten stehenden Link.

shiraco/linnabot

Wenn Sie auf die Schaltfläche "Bereitstellen" klicken, werden Sie nach dem Namen der App, dem API-SCHLÜSSEL für jede LINE / Docomo usw. gefragt. Melden Sie sich daher für jede LINE / Docomo im Dashboard an und geben Sie den bestätigten Inhalt ein.

Nachdem Sie bestätigt haben, dass die Bereitstellung erfolgreich war, öffnen Sie das LINE-Dashboard wie folgt erneut und stellen Sie Folgendes ein.

https://developers.line.me/channels/

Vielleicht ist es "https: //YOUR_APP_NAME.herokuapp.com: 443 / callback".

linnabot2.png

(Es scheint, dass die Server-IP-Whitelist jetzt optional ist, daher ist Folgendes nicht erforderlich.)

~~ * Setze Herokus Fixie-Outboud-IP-Adresse x 2 auf die Server-IP-Whitelist von LINE ~~

~~ Korrigieren Sie die IP-Adresse der Verbindungsquelle, wenn Sie die LINE-API mit fixie aufrufen, und stellen Sie sie so ein, dass sie auf der LINE-Seite zulässig ist. ~~

~~linnabot1.png~~

Das ist alles für die Einrichtung. Fügen Sie einfach einen Freund aus dem QR-Code hinzu und sprechen Sie mit der LINE-App.

Was ich überprüfen wollte

Systemkonfiguration

Die Umgebung hat diesmal die folgende Konfiguration.

Der grobe Verarbeitungsablauf ist das folgende Bild.

linna-archi.png

In Bezug auf die Verarbeitung wird als Reaktion auf etwas, das in LINE gesprochen wird, ein Rückruf aufgerufen und der Inhalt der Äußerung an die Chat-API von Docomo gesendet.

bot.py(Auszug&Änderung)


    def on_post(self, req, resp):

        body = req.stream.read()
        receive_params = json.loads(body.decode('utf-8'))

        for msg in receive_params['result']:

            docomo_res = self.docomo_client.send(utt=msg['content']['text'],  #Was der Benutzer sagt
                                                 apiname='Dialogue')
            send_content = {
                'to': [msg['content']['from']],
                'toChannel': 1383378250,  # Fixed value
                'eventType': '138311608800106203',  # Fixed value
                'content': {
                    'contentType': 1,
                    'toType': 1,
                    'text': docomo_res['utt'],  #Chat-API-Sprachinhalt
                },
            }
            send_content = json.dumps(send_content)

            header = {
                'Content-Type': 'application/json; charset=UTF-8',
                'X-Line-ChannelID': os.environ['LINE_CHANNEL_ID'],
                'X-Line-ChannelSecret': os.environ['LINE_CHANNEL_SECRET'],
                'X-Line-Trusted-User-With-ACL': os.environ['LINE_CHANNEL_MID'],
            }

            #Es scheint, dass die Server-IP-Whitelist jetzt optional ist, sodass keine Proxys mehr angegeben werden müssen!
            # PROXIES = {'http': os.environ.get('FIXIE_URL', ''), 'https': os.environ.get('FIXIE_URL', '')}
            # res = requests.post(ENDPOINT_URI, data=send_content, headers=header, proxies=PROXIES)
            res = requests.post(ENDPOINT_URI, data=send_content, headers=header)

            resp.body = json.dumps('OK')

Weitere Informationen finden Sie bei Bedarf im folgenden Code. shiraco/linnabot

Wo ich süchtig war

(Es scheint, dass die Server-IP-Whitelist jetzt optional ist, daher ist Folgendes nicht erforderlich.)

~~ Wenn Sie die LINE BOT-API aufrufen, müssen Sie Herokus Addon-Fixie auf den Proxy setzen. Wie oben erwähnt, setzen Sie http_proxy & https_proxy mit FIXIE_URL, das beim Hinzufügen eines Addons automatisch in der Heroku-Umgebungsvariablen festgelegt wird. (http_proxy wird für diesen Zweck möglicherweise nicht benötigt.) ~~

Zusammenfassung

Diesmal habe ich gerade die Chat-API mit der BOT-API von LINE verbunden, aber die Chat-Oberfläche ist sehr benutzerfreundlich und sieht attraktiv aus, da sie möglicherweise von einer großen Anzahl von Personen verwendet werden kann.

In der Testversion habe ich das Gefühl, dass die Hauptverwendung darin besteht, ein persönlicher Assistent zu sein, z. B. nur einen Bot zu erstellen oder nicht zur LINE-Gruppe einzuladen, aber LINE, eine wichtige Messaging-Plattform, bietet eine BOT-Plattform. Ich habe großes Potenzial, angefangen zu haben. Es ist leicht vorstellbar, dass die Beschränkungen in Zukunft gelockert werden und verschiedene BOT-Apps entstehen werden. Behalten Sie zukünftige Trends im Auge.

Es ist auch bemerkenswert, dass in 3 bis 4 Tagen fast 30 Beiträge auf Qiitas Linebot-Tag gepostet wurden.

Referenz

Recommended Posts

Ich habe versucht, mein eigenes High-School-Mädchen BOT im Rinna-Stil mit LINE BOT (Python & Heroku) zu machen.
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
Ich habe versucht, meinen eigenen Quellcode mit Chainer v2 alpha kompatibel zu machen
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
[Python] Erstelle deinen eigenen LINE-Bot
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
Python-Anfänger haben beschlossen, einen LINE-Bot mit Flask zu erstellen (Flask-Kommentar)
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
[Zaif] Ich habe versucht, den Handel mit virtuellen Währungen mit Python zu vereinfachen
Machen Sie Twitter Trend Bot mit Heroku + Python
Ich möchte ein Spiel mit Python machen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, Linux mit Discord Bot zu betreiben
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
[Patentanalyse] Ich habe versucht, mit Python eine Patentkarte zu erstellen, ohne Geld auszugeben
Ich habe versucht, den Code des Python-Anfängers (Schüler der Mittelstufe) zu überarbeiten.
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, mit Python Machine Learning ein Echtzeit-Modell zur Trennung von Tonquellen zu erstellen
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Fortsetzung ・ Ich habe versucht, Slackbot zu erstellen, nachdem ich Python3 studiert habe
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Sie können Zoom trinken! !! Ich habe versucht, mit Flask + Heroku ein kooperatives Themenspiel zu entwickeln
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, eine OCR-App mit PySimpleGUI zu erstellen
[Super einfach] Machen wir einen LINE BOT mit Python.
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
[Python] Ich habe versucht, mit tkinter eine Anwendung zu erstellen, die das Gehalt anhand der Arbeitszeit berechnet
Ich habe versucht, einen Generator zu erstellen, der mit Python eine C # -Containerklasse aus CSV generiert
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Ich habe versucht, meine eigene Python-Baseballbibliothek bei Packaging & PyPI zu veröffentlichen
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
[Python] Ich habe versucht, LINE BOT die Wettervorhersage beantworten zu lassen
Mayungos Python Learning Episode 3: Ich habe versucht, Zahlen zu drucken
Ich möchte eine Nachricht von Python an LINE Bot senden
Ich habe eine Stoppuhr mit tkinter mit Python gemacht