Divers mémorandums lors de l'utilisation du sdk de l'API de messagerie LINE avec Python (2.7.9) + Google App Engine

introduction

J'ai créé un robot à l'aide de LINE Messaging API dans l'environnement Python + Google App Engine. Parfois, je n'en savais pas grand-chose, alors j'aimerais l'écrire ici sous forme de mémorandum.

Précautions lors de la construction de l'environnement



Précautions lors du déploiement


--``` pip install [module] -t [emplacement d'installation] Il est préférable d'installer en utilisant `` `etc. pour résoudre les dépendances. (Utilisé lors de l'installation de ** - t ** = ** - target ** dans un emplacement différent de l'emplacement normal du module.)


De plus, il ne suffit pas de déployer la bibliothèque ensemble et divers paramètres sont nécessaires. Selon le DOC officiel, vous pouvez rendre le répertoire ** lib ** contenant le module reconnaissable en déployant ** appengine_config.py ** ensemble. Si vous voulez reconnaître d'autres répertoires, vous pouvez changer * lib * en * [nom arbitraire] * dans le code ci-dessous.

appengine_config.py


# [START vendor]
import os
from google.appengine.ext import vendor

# Add any libraries installed in the "lib" folder.
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
# [END vendor]

――Je ne savais pas trop comment cela était nécessaire, mais il semble préférable d'inclure également ** requirements.txt **. Si vous collez le résultat de `` pip freeze '', cela semble correct pour le moment.

Avec les paramètres ci-dessus, enfin du côté code

code


import flask

Vous pourrez faire quelque chose.

Précautions d'utilisation de l'API de messagerie LINE

À la suite de diverses enquêtes, il y avait un module qui relie URLFetch et les requêtes, donc je l'ai installé et ajouté / changé en line-bot-sdk-python comme suit.

/lib/linebot/api.py


#※/lib est le répertoire dans lequel vous avez installé le module.

# [START imports]
import requests
import requests_toolbelt.adapters.appengine

# Use the App Engine Requests adapter. This makes sure that Requests uses
# URLFetch.
requests_toolbelt.adapters.appengine.monkeypatch()
# [END imports]

Vous pouvez désormais l'utiliser dans GAE sans modifications majeures de line-bot-sdk-python. Avec cette bibliothèque, vous n'avez pas à créer votre propre objet de réponse LINE. Cliquez ici pour les spécifications détaillées de ** API LINE Messaging **: Référence API Line

Une petite explication de line-bot-sdk-python

Code côté réception HTTPS


    jsonObject = request.json
    line_request = jsonObject['events'][0]  #Le contenu de la demande

Ici vous pouvez voir le contenu du message provenant de LINE avec line_request. Écrivez ceci au début du code qui traite le message.

Code principal du BOT


    line_bot_api = LineBotApi(your_channel_access_token)
    parser = WebhookParser(your_channel_secret))

Le reste est facile. (L'objet de message ici est l'objet * Envoyer un message * sur le côté LIGNE.)

Code principal du BOT


        line_bot_api.reply_message(
            replyToken,
            TextSendMessage(text=event.message.text)
        )

--``` line_bot_api.reply_message (replyToken, objet de message) Répondre avec`


Comment créer un objet de message

-- Object (text) = TextSendMessage (text = "text") `` ` -- Object (photo) = ImageSendMessage (original_content_url = "URL de l'image d'origine", preview_image_url = "URL de la gorge") ` --``` Object (Video) = VideoSendMessage (original_content_url = "Original Video URL", preview_image_url = "Throat URL") --``` Object (vidéo) = AudioSendMessage (original_content_url = "URL audio d'origine", durée = "longueur (dans 1 minute)") `` -- Object (Video) = LocationSendMessage (title = "Title", address = "Address", latitude = "Latitude", longitude = "Distance") `` ` -- Object (vidéo) = StickerSendMessage (package_id = "package ID", sticker_id = "sticker ID") `` `

Recommended Posts

Divers mémorandums lors de l'utilisation du sdk de l'API de messagerie LINE avec Python (2.7.9) + Google App Engine
Tweet (API 1.1) avec Google App Engine pour Python
[Python] Utilisation de l'API Line [1ère création de Beauty Bot]
Premiers pas avec Google App Engine pour Python et PHP
Version d'exécution de l'environnement standard Google App Engine / Python
[LINE Messaging API] Créer un BOT de retour de perroquet avec Python
Paramètres lors du développement d'applications App Engine / Python avec VS Code
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
Jouez avec l'API de données YouTube v3 à l'aide du client Python de l'API Google
Démo facile à comprendre de Imagemap Message de l'API de messagerie LINE [PHP] [Ruby] [Python]
Implémentation de CRUD à l'aide de l'API REST avec Python + Django Rest framework + igGrid
[Python3] Google translate google translation sans utiliser l'API
Paramètres lors de l'écriture d'applications Google App Engine / Python avec Intellij Idea
Développement Google AppEngine avec Docker
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
Utilisation du fichier de propriétés avec l'environnement flexible Java 8 de Google App Engine
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
Lors de l'utilisation de MeCab avec python dans virtualenv
Précautions lors de l'utilisation de six avec Python 2.5
[SEO] Flux / exemple de code lors de l'utilisation de l'API Google Analytics en Python
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
[Python] Exécutez Flask sur Google App Engine
Essayez d'utiliser Python avec Google Cloud Functions
Travailler avec OpenStack à l'aide du SDK Python
Je ne peux plus déployer avec le moteur d'application Google
Créer une feuille de calcul Google à l'aide de l'API Python / Google Data
À propos du problème que la version python de Google App Engine ne maille pas
Un exemple de cloudbuild.yaml lors du déploiement automatique de Django sur App Engine avec Cloud Build
Lorsque vous utilisez PyQtGraph avec Python Pyside, faites attention à l'ordre d'importation
Conseils personnels lorsque vous faites diverses choses avec Python 3
[Python] Une histoire sur la création d'un bot LINE avec une fonction humaine pratique sans utiliser Salesforce [API de messagerie]
Qu'utilisez-vous lorsque vous testez avec Python?
Capacité récente de reconnaissance d'image - Résultats de recherche de pointe de MS à l'aide de l'API de vision par ordinateur avec Python
Le SDK / Go Google App Engine (version Linux) et Python installés avec Linuxbrew sont incompatibles
Importez un fichier JPG à l'aide de l'API Google Drive en Python
Paramètres initiaux lors de l'utilisation de l'API foursquare avec python
[API LINE Messaging] Créez un menu riche avec Python
Essayez de projeter la conversion d'image en utilisant OpenCV avec Python
[Question] À propos de la conversion API du chat bot à l'aide de Python
Un moyen facile de gratter avec Python en utilisant Google Colab
Déployer l'application Django sur Google App Engine (Python3)
Procédure de construction de l'environnement de développement Google App Engine / Python (fin 2014)
[Python] Obtenez des données insight à l'aide de l'API Google My Business
Enregistrez des tickets avec l'API de Redmine en utilisant des requêtes Python
(Débutant) Utilisation de base du magasin de données de Google App Engine
OpenVINO utilisant l'API Python d'Inference Engine dans un environnement PC
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Comment utiliser Django avec Google App Engine / Python
Procédure de transcription vocale à l'aide de Python et de l'API Google Cloud Speech
Reconnaissance vocale des fichiers par l'API Google Speech v2 à l'aide de Python
Création d'un BOT «Présentation non officielle du produit remis à neuf par Apple» avec l'API de messagerie LINE (v2) + API Gateway + lambda (python)
J'ai créé une application avec Lambda qui notifie LINE de "j'aime" à l'aide de l'API Qiita.
Lisez des phrases en anglais en accédant à l'API Google Translation avec Python sans utiliser le module distribué