Verschiedene Memoranden bei Verwendung von SDK der LINE Messaging API mit Python (2.7.9) + Google App Engine

Einführung

Ich habe einen Bot mithilfe der Umgebung LINE Messaging API in Python + Google App Engine erstellt. Manchmal wusste ich nicht viel darüber, deshalb möchte ich es hier als Memorandum aufschreiben.

Vorsichtsmaßnahmen beim Aufbau der Umgebung


--Das diesmal verwendete Python ist * 2.7.9 *, wird jedoch von der Python 3-Version ** Anaconda ** versioniert.


Vorsichtsmaßnahmen bei der Bereitstellung


--``` pip install [module] -t [Installationsort] Es ist besser, in Form der Auflösung von Abhängigkeiten mithilfe von `` `usw. zu installieren. (Wird verwendet, wenn ** - t ** = ** - target ** an einem anderen Ort als dem normalen Modulstandort installiert wird.)


―― Darüber hinaus reicht es nicht aus, die Bibliothek nur gemeinsam bereitzustellen, und es sind verschiedene Einstellungen erforderlich. Laut offiziellem DOC können Sie das Verzeichnis ** lib ** mit den Modulen erkennbar machen, indem Sie ** appengine_config.py ** zusammen bereitstellen. Wenn Sie andere Verzeichnisse erkennen möchten, können Sie * lib * im folgenden Code in * [beliebiger Name] * ändern.

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]

――Ich war mir nicht sicher, wie es gebraucht wurde, aber es scheint besser, auch ** require.txt ** aufzunehmen. Wenn Sie das Ergebnis von `` `pip freeze``` einfügen, scheint es vorerst in Ordnung zu sein.

Mit den obigen Einstellungen endlich auf der Codeseite

Code


import flask

Sie werden in der Lage sein, etwas zu tun.

Vorsichtsmaßnahmen für die Verwendung der LINE Messaging-API

Aufgrund verschiedener Untersuchungen gab es ein Modul, das URLFetch und Anforderungen miteinander verbindet. Daher habe ich es installiert und wie folgt in line-bot-sdk-python hinzugefügt / geändert.

/lib/linebot/api.py


#※/lib ist das Verzeichnis, in dem Sie das Modul installiert haben.

# [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]

Jetzt können Sie es in GAE ohne größere Änderungen an line-bot-sdk-python verwenden. Mit dieser Bibliothek müssen Sie kein eigenes LINE-Antwortobjekt erstellen. Klicken Sie hier für detaillierte Spezifikationen der ** LINE Messaging API **: Line API Reference

Eine kleine Erklärung von line-bot-sdk-python

HTTPS-Empfangsseitencode


    jsonObject = request.json
    line_request = jsonObject['events'][0]  #Der Inhalt der Anfrage

Hier sehen Sie den Inhalt der Nachricht von LINE mit line_request. Schreiben Sie dies am Anfang des Codes, der die Nachricht verarbeitet.

BOT-Hauptcode


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

Der Rest ist einfach. (Das Nachrichtenobjekt hier ist das * Nachrichtenobjekt senden * auf der LINE-Seite.)

BOT-Hauptcode


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

--``` line_bot_api.reply_message (replyToken, Nachrichtenobjekt) `` Antworten mit


So erstellen Sie ein Nachrichtenobjekt

-- Object (text) = TextSendMessage (text = "text") `` ` -- Objekt (Foto) = ImageSendMessage (original_content_url = "Originalbild-URL", Vorschau_image_url = "Hals-URL") ` --``` Object (Video) = VideoSendMessage (original_content_url = "Original Video URL", Vorschau_image_url = "Throat URL") --``` Objekt (Video) = AudioSendMessage (original_content_url = "ursprüngliche Audio-URL", Dauer = "Länge (innerhalb von 1 Minute)") `` -- Object (Video) = LocationSendMessage (title = "Title", address = "Address", width = "Latitude", longitude = "Distance") `` ` -- Object (Video) = StickerSendMessage (package_id = "package ID", sticker_id = "sticker ID") `` `

Recommended Posts

Verschiedene Memoranden bei Verwendung von SDK der LINE Messaging API mit Python (2.7.9) + Google App Engine
Tweet (API 1.1) mit Google App Engine für Python
[Python] Verwenden der Linien-API [1. Erstellung des Beauty-Bots]
Erste Schritte mit Google App Engine für Python und PHP
Laufzeitversion der Google App Engine / Python-Standardumgebung
[LINE Messaging API] Erstellen Sie einen Papageienrückgabe-BOT mit Python
Einstellungen beim Entwickeln von App Engine / Python-Apps mit VS-Code
Ich habe Chatbot mit LINE Messaging API und Python erstellt
Spielen Sie mit der YouTube Data API v3 mit dem Google API Python Client
Leicht verständliche Demo von Imagemap Message der LINE Messaging API [PHP] [Ruby] [Python]
Implementierung von CRUD mithilfe der REST-API mit Python + Django Rest Framework + igGrid
[Python3] Google übersetzt Google Übersetzung ohne Verwendung von API
Einstellungen beim Schreiben von Google App Engine / Python-Apps mit Intellij Idea
Google AppEngine-Entwicklung mit Docker
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Verwenden der Eigenschaftendatei mit Flexible Environment Java 8 von Google App Engine
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
[SEO] Flow / Beispielcode bei Verwendung der Google Analytics-API in Python
Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
[Python] Führen Sie Flask in Google App Engine aus
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Arbeiten mit OpenStack mit dem Python SDK
Ich kann nicht mehr mit der Google App Engine bereitstellen
Erstellen einer Google-Tabelle mit der Python / Google Data-API
Über das Problem, dass die Python-Version von Google App Engine nicht ineinander greift
Ein Beispiel für cloudbuild.yaml bei der automatischen Bereitstellung von Django für App Engine mit Cloud Build
Beachten Sie bei der Verwendung von PyQtGraph mit Python Pyside die Reihenfolge des Imports
Persönliche Tipps, wenn Sie verschiedene Dinge mit Python 3 tun
[Python] Eine Geschichte über das Erstellen eines LINE-Bots mit einer praktischen bemannten Funktion ohne Verwendung von Salesforce [Messaging-API]
Was verwenden Sie beim Testen mit Python?
Jüngste Fähigkeit zur Bilderkennung - Die neuesten Forschungsergebnisse von MS unter Verwendung der Computer Vision API mit Python
Das mit Linuxbrew installierte Google App Engine SDK / Go (Linux-Version) und Python sind nicht kompatibel
Laden Sie eine JPG-Datei mit der Google Drive-API in Python hoch
Grundeinstellungen bei Verwendung der foursquare-API mit Python
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Versuchen Sie, die Bildkonvertierung mit OpenCV mit Python zu projizieren
[Frage] Über die API-Konvertierung von Chat-Bot mit Python
Einfache Möglichkeit, mit Google Colab mit Python zu kratzen
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
Konstruktionsverfahren für die Google App Engine / Python-Entwicklungsumgebung (Ende 2014)
[Python] Abrufen von Insight-Daten mithilfe der Google My Business-API
Registrieren Sie Tickets mit der Redmine-API mithilfe von Python-Anforderungen
(Anfänger) Grundlegende Verwendung des Datenspeichers von Google App Engine
OpenVINO verwendet die Inference Engine Python API in einer PC-Umgebung
Analysieren mit Google Colaboratory mithilfe der Kaggle-API
Verwendung von Django mit Google App Engine / Python
Sprachtranskriptionsverfahren mit Python und Google Cloud Speech API
Sprachdateierkennung durch Google Speech API v2 mit Python
"Inoffizielle Apple Refurbished Product Introduction" BOT mit LINE Messaging API (v2) + API Gateway + Lambda (Python)
Ich habe mit Lambda eine App erstellt, die LINE über die Qiita-API über "Likes" informiert.
Lesen Sie englische Sätze, indem Sie mit Python auf die Google Übersetzungs-API klicken, ohne das verteilte Modul zu verwenden