[PYTHON] [Ergänzung zum vorherigen Artikel] Ich habe versucht, die PUSH-API von LINE Bot zu verwenden, die im kostenlosen Plan verfügbar war, bevor ich es wusste.

Über diesen Artikel

Ergänzung zum vorherigen Artikel "[Move LINE Bot in Python (Flask) implementiert" ohne Verwendung von Heroku "(https://qiita.com/hiro0236/items/84581c5e4481185d4a5c)". In der Vergangenheit beschränkte sich das Senden von Nachrichten an Benutzer mit dem kostenlosen LINE Bot-Plan darauf, auf von Benutzern gesendete Nachrichten zu antworten. Ich konnte die PUSH-API nicht zum Senden einer Nachricht an den Benutzer verwenden, aber bevor ich es wusste, konnte ich die PUSH-API auch mit dem kostenlosen Plan verwenden. Infolgedessen hat sich das Entwicklungsspektrum auch mit dem kostenlosen Plan erweitert, sodass wir untersuchen werden, wie er verwendet werden kann.

Warum ist es gebrauchsfertig, bevor Sie es wissen?

Nach einer Untersuchung scheint es eine Ankündigung wie diese des LINE-Beamten gegeben zu haben. Es scheint, dass die PUSH-API ab etwa Juni 2019 auch im kostenlosen Plan verwendet werden kann. Es gibt jedoch ein Limit von 1.000 pro Monat **. Ein Dienst mit mehr als 100 Benutzern scheint schwierig zu sein, aber wenn er in einige zehn Personen passt (abhängig von der Anwendung), scheint er ausreichend zu sein.

In jedem Fall besteht kein Zweifel daran, dass sich das Entwicklungsspektrum für Ingenieure, die mit einem kostenlosen Plan entwickeln, erheblich erweitert hat.

Push-Nachrichtentyp

[Offizielle Referenz] Nach () gibt es die folgenden vier Typen.

Versuchen Sie, eine Nachricht zu senden

Sie können die LINE-API direkt mit Curl usw. aufrufen, aber da ich im vorherigen Artikel line-bot-sdk-python installiert habe Ich werde Code schreiben, um eine Push-Nachricht in Python zu senden. Implementieren Sie beim Lesen von Implementierung von line-bot-sdk-python.

Da es sich um eine Fortsetzung des vorherigen Artikels handelt, gehen wir davon aus, dass Line-Bot-SDK usw. bereits eingeführt wurden.

Push-Nachricht senden

Dies kann mit dem folgenden Code realisiert werden. Wenn Sie nur eine Nachricht senden, können Sie diese einfach wie folgt implementieren.

push.py


from linebot import LineBotApi
from linebot.models import TextSendMessage

CHANNEL_ACCESS_TOKEN = "Kanalzugriffstoken festlegen"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)

def main():
    to = "Geben Sie die Benutzer-ID an"
    messages = TextSendMessage(text="Push-Benachrichtigungstest")
    line_bot_api.push_message(to, messages=messages)

if __name__ == "__main__":
    main()

Als ich es ausführte, wurde eine Nachricht von Bot wie folgt gesendet.

linebot3_1.png

Multicast-Nachricht senden

Ich sende Nachrichten an mehrere Benutzer, da ich nur ein LINE-Konto habe Ich konnte nicht bestätigen, ob es an mehrere Personen gesendet wird.

multicast.py


from linebot import LineBotApi
from linebot.models import TextSendMessage

CHANNEL_ACCESS_TOKEN = "Kanalzugriffstoken festlegen"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)

def main():
    to = ["Geben Sie die Benutzer-ID an, die als Listentyp gesendet werden soll"]
    messages = TextSendMessage(text="Multiplikatortest")
    line_bot_api.multicast(to, messages=messages)

if __name__ == "__main__":
    main()

linebot3_2.png

Narrowcast-Nachricht senden

Ich habe nicht wenig verstanden. Es scheint, dass es durch das Alter und Geschlecht des Benutzers eingegrenzt wird, aber es ist unklar, wie Alter und Geschlecht als eindeutige Informationen des Benutzers festgelegt werden. Sie können diese Informationen auch erhalten, indem Sie versuchen, Ihr Profil mit [API zum Abrufen des Benutzerprofils] abzurufen (https://developers.line.biz/ja/reference/messaging-api/#get-profile). Zu. Als zukünftige Ausgabe werde ich etwas mehr untersuchen.

Broadcast-Nachricht senden

Ich sende eine Nachricht an alle Freunde von Bot, bin mir aber immer noch nicht sicher, weil ich der einzige Bot-Freund bin.

broadcast.py


from linebot import LineBotApi
from linebot.models import TextSendMessage

CHANNEL_ACCESS_TOKEN = "Kanalzugriffstoken festlegen"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)

def main():
    messages = TextSendMessage(text="Broadcast-Test")
    line_bot_api.broadcast(messages=messages)

if __name__ == "__main__":
    main()

linebot3_3.png

Unterstützt andere als Textnachrichten

Neben Textnachrichten unterstützt line-bot-sdk-python auch das Senden von Stempeln und Bildern. Ich habe diesmal nur Stempel und Bilder überprüft, aber soweit ich die Implementierung sehen kann Es scheint, dass auch Standortinformationen usw. gesendet werden können

Stempel senden

Unter hier finden Sie die package_id und sticker_id, die zur Angabe des Stempels erforderlich sind. Betrachtet man die offiziellen Konten von Unternehmen, so scheinen einige Briefmarken in Briefmarkengeschäften verkauft zu werden. Es ist nicht bekannt, wie dies erreicht wird. Untersuchen Sie etwas mehr.

push_sticker.py


from linebot import LineBotApi
from linebot.models import StickerSendMessage

CHANNEL_ACCESS_TOKEN = "Kanalzugriffstoken festlegen"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)

def main():
    to = "Geben Sie die Benutzer-ID an"
    messages = StickerSendMessage(package_id='11537', sticker_id='52002734')
    line_bot_api.push_message(to, messages=messages)

if __name__ == "__main__":
    main()

linebot3_4.png

Bild senden

push_image.py


from linebot import LineBotApi
from linebot.models import ImageSendMessage

CHANNEL_ACCESS_TOKEN = "Kanalzugriffstoken festlegen"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)

def main():
    to = "Geben Sie die Benutzer-ID an"
    messages = ImageSendMessage(original_content_url="https://pbs.twimg.com/profile_images/1201406146822557696/ewFFvnAa_400x400.jpg ", preview_image_url="https://pbs.twimg.com/profile_images/1201406146822557696/ewFFvnAa_400x400.jpg ")
    line_bot_api.push_message(to, messages=messages)

if __name__ == "__main__":
    main()

linebot3_5.png

abschließend

Im vorherigen Artikel habe ich einen neuen Artikel über meine persönlichen zukünftigen Probleme geschrieben, aber es sind wieder neue Probleme aufgetaucht. Darüber hinaus werden wir den Artikel aktualisieren oder im Verlauf der Untersuchung einen neuen Artikel erstellen.

Ich würde mich freuen, wenn Sie mich wissen lassen könnten, ob die von mir bereitgestellten Informationen fehlerhaft sind.

Recommended Posts

[Ergänzung zum vorherigen Artikel] Ich habe versucht, die PUSH-API von LINE Bot zu verwenden, die im kostenlosen Plan verfügbar war, bevor ich es wusste.
Bevor ich es wusste, konnte ich keine Bindestriche in der Client-ID der GAE-Kanal-API verwenden.
P100-PCIE-16GB wurde der GPU von Google Colab hinzugefügt, bevor ich es wusste
Ich habe versucht, die Texte von GReeeen zu visualisieren, die ich in meiner Jugend verrückt gehört habe, aber nicht mehr gehört habe.
Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Ich habe versucht, die Erstellung einer praktischen Umgebung mithilfe der SoftLayer-API der IBM Cloud zu automatisieren
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe versucht, den Inhalt jedes von Python pip gespeicherten Pakets in einer Zeile zusammenzufassen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe mir die Metainformationen von BigQuery angesehen und versucht, sie zu verwenden
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Ähnlichkeit der Frageabsicht mit Doc2Vec von gensim abzuschätzen
Ich habe versucht, "Sakurai-san" LINE BOT mit API Gateway + Lambda zu erstellen
Der Fall, dass die Installation von Pip einfacher wurde, bevor ich es wusste
Ich habe versucht, verschiedene Sätze mit der automatischen Zusammenfassungs-API "summpy" zusammenzufassen.
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, den Höhenwert von DTM in einem Diagramm anzuzeigen
Ich habe die übliche Geschichte ausprobiert, Deep Learning zu verwenden, um den Nikkei-Durchschnitt vorherzusagen
Mit COTOHA habe ich versucht, den emotionalen Verlauf des Laufens von Meros zu verfolgen.
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
Ich habe versucht zu erklären, wie der Artikelinhalt mit der MediaWiki-API auf leicht verständliche Weise anhand von Beispielen abgerufen werden kann (Python 3).