J'ai participé au stage d'été de Scied Co., Ltd. et j'ai développé LINE Chatbot. Depuis que la version officielle de l'API de messagerie a été annoncée par LINE le 29/09/2016, cette fois j'ai créé un bot qui répond automatiquement avec la version officielle.
[LINE] A annoncé de nouveaux développements pour le développement et la vulgarisation du chatbot, a publié une nouvelle API de messagerie et a officiellement commencé à la fournir aux développeurs. https://linecorp.com/ja/pr/news/ja/2016/1516
Le code source du bot a été publié sur github. https://github.com/Sciseed/yukko-line-bot
L'environnement de développement cette fois-ci est le suivant. ・ Python 3.4.0 ・ Heroku ・ Django 1.8.14
Cette fois, j'ai utilisé Heroku et mis en place un serveur en utilisant Django. (J'expliquerai la construction du serveur plus tard)
Enregistrez un compte professionnel et créez un compte API de messagerie. https://business.line.me/ja/services/bot
Un jeton d'accès au canal sera émis lorsque vous créez un compte API. Veuillez en prendre note car il sera utilisé. L'URL du Webhook est un point de terminaison qui vous avertit lorsqu'un message est envoyé depuis LINE. Spécifiez l'URL créée par Heroku. (Étant donné que la communication SSL a été spécifiée au moment de l'essai, je me demande s'il y en a également cette fois) (Il semble que le numéro de port 443 ne soit pas nécessaire)
Créez une méthode en vous référant à LINE API Reference. Le code suivant renverra un message envoyé par l'utilisateur. (L'API utilisée dans la photo ci-dessous est en train de discuter en utilisant l'API de chat de 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))
J'ai implémenté Carousel en utilisant la nouvelle fonction Template Message. Il y avait plus de restrictions que ce à quoi je m'attendais et c'était un peu difficile. Faites attention à la limite du nombre d'éléments et à la limite du nombre de caractères dans la description. De plus, selon la documentation, les miniatures doivent être envoyées via HTTPS (je ne sais pas si elles peuvent être envoyées via HTTP).
Sur l'écran de chat LINE, "Quel est le restaurant recommandé?" "Dis-moi un bon endroit pour déjeuner." Tel, "Restaurant" "Déjeuner" et "Recommandé" "Dites-moi" Si vous entrez une phrase qui comprend, etc., le carrousel s'affiche.
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": "Restaurant recommandé",
"template": {
"type": "carousel",
"columns": [
{
"thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/hamburger_240.jpeg ",
"title": "Burger indésirable",
"text": "Peu importe qui le dit, le roi de la malbouffe est toujours un hamburger.",
"actions": [
{
"type": "uri",
"label": "voir les détails",
"uri": "http://example.com/page/222"
}
]
},
{
"thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/pizza_240.jpeg ",
"title": "pizza cap",
"text": "Le goût authentique de Naples est rapide et bon marché. C'est une pizzeria spécialisée avec 17 magasins à Tokyo.",
"actions": [
{
"type": "uri",
"label": "voir les détails",
"uri": "http://example.com/page/222"
}
]
},
{
"thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/bread_240.jpeg ",
"title": "Atelier de pain authentique Takeyoshi",
"text": "Selon vous, quel est le plus important pour le pain? Takeyoshi croit que cuire la surface est la vie.",
"actions": [
{
"type": "uri",
"label": "voir les détails",
"uri": "http://example.com/page/222"
}
]
},
{
"thumbnailImageUrl": "https://s3-us-west-2.amazonaws.com/lineapitest/harumaki_240.jpeg ",
"title": "Vietnam Tokyo",
"text": "Un restaurant vietnamien établi de longue date à Higashi Ikebukuro. Nous proposons une cuisine vietnamienne appréciée des gens depuis plus de 40 ans.",
"actions": [
{
"type": "uri",
"label": "voir les détails",
"uri": "http://example.com/page/222"
}
]
},
]
}
}
]
}
req = requests.post(REPLY_ENDPOINT, headers=header, data=json.dumps(payload))
J'ai pu le faire assez rapidement. Par rapport à la version d'essai précédente, la documentation était plus facile à comprendre, elle était donc beaucoup plus facile à développer que prévu.
Veuillez ajouter des amis à LINE et essayez-le! ^ ^
Tips ・ Si "... je ne peux pas répondre individuellement avec ce compte ..." est renvoyé lors de l'envoi d'un message, la fonction de réponse automatique fonctionne, donc LINE @ MANAGER → Paramètres du compte → Paramètres du bot → Réponse automatique Si vous désactivez temporairement le message, il répondra. -Dans la version d'essai, il était nécessaire de spécifier le numéro de port 443, mais il semble que ce ne soit plus nécessaire. ・ Carousel ne fonctionnait pas sur iPhone au 30 septembre 2016.
-Cette fois, nous ne renvoyons que le perroquet, mais si vous renvoyez le texte passé à post_text avec l'API de chat de docomo, vous pouvez facilement créer un robot de chat. (Mis en œuvre dans le compte ci-dessus)
Certaines fonctionnalités supplémentaires ont été ajoutées à partir de la version d'essai. Le développement du traitement du langage progresse également, et il semble que de plus en plus de chatbots multifonctionnels de haute qualité verront le jour. Cyseed, qui a participé en tant que stagiaire cette fois, utilise le traitement du langage naturel et l'apprentissage automatique pour fournir des conseils de haute qualité aux étudiants en recherche d'emploi "Job-hunt My Concier". Nous développons un service LINE. Il semble que des stagiaires ingénieurs soient également recrutés à tout moment.
J'ai créé un chatbot en utilisant l'API LINE Messaging et Python (2)
・ J'ai essayé de créer mon propre BOT pour lycéenne avec LINE BOT (Python & Heroku) ・ Déplacer LINE BOT gratuitement avec Heroku ・ Référence API LINE ・ Résumé lors du déploiement de l'application Django sur Heroku ・ J'ai essayé de créer LINE BOT avec Python en utilisant l'API LINE BOT
Recommended Posts