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
Der Quellcode von bot wurde auf github veröffentlicht. https://github.com/Sciseed/yukko-line-bot
Die Entwicklungsumgebung ist diesmal wie folgt. ・ Python 3.4.0 ・ Heroku ・ Django 1.8.14
Diesmal habe ich Heroku verwendet und mit Django einen Server eingerichtet. (Ich werde später über den Serveraufbau erklären)
Registrieren Sie ein Geschäftskonto und erstellen Sie ein Messaging-API-Konto. https://business.line.me/ja/services/bot
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.)
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))
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))
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.
In der Testversion musste die Portnummer 443 angegeben werden, dies scheint jedoch nicht mehr erforderlich zu sein. ・ Das Karussell funktionierte zum 30.09.2016 nicht auf dem iPhone.
Dieses Mal geben wir nur den Papagei zurück. Wenn Sie jedoch den an post_text übergebenen Text mit der Chat-API von docomo zurückgeben, können Sie ganz einfach einen Chat-Roboter erstellen. (Im obigen Konto implementiert)
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.
Ich habe einen Chatbot mit LINE Messaging API und Python erstellt (2)
・ Ich habe versucht, mein eigenes Highschool-Mädchen BOT mit LINE BOT (Python & Heroku) zu machen ・ LINE BOT kostenlos mit Heroku verschieben ・ LINE API-Referenz ・ Zusammenfassung beim Bereitstellen der Django-App auf Heroku ・ Ich habe versucht, LINE BOT mit Python mithilfe der LINE BOT-API zu erstellen