Supplément à l'article précédent "[Move LINE Bot implémenté en Python (Flask)" sans utiliser Heroku "(https://qiita.com/hiro0236/items/84581c5e4481185d4a5c)". Dans le passé, avec le plan gratuit LINE Bot, l'envoi d'un message à un utilisateur se limitait à répondre à un message envoyé par l'utilisateur. Je ne pouvais pas utiliser l'API PUSH pour envoyer un message à l'utilisateur à partir d'ici, mais avant de le savoir, j'ai pu utiliser l'API PUSH même avec le plan gratuit. En conséquence, la gamme de développement s'est étendue même avec le plan gratuit, nous allons donc étudier comment l'utiliser.
Après enquête, il semble qu'il y ait eu une annonce comme celle-ci du responsable de LINE. Il semble que l'API PUSH puisse être utilisée même dans le plan gratuit à partir de juin 2019 environ. Cependant, il y a une limite de 1 000 par mois **. Un service avec plus de 100 utilisateurs semble difficile, mais s'il s'adapte à quelques dizaines de personnes (selon l'application), cela semble suffisant.
Dans tous les cas, il ne fait aucun doute que la gamme de développement s'est considérablement élargie pour les ingénieurs développant avec un plan libre.
[Référence officielle] Selon (), il existe les quatre types suivants.
--Push message (envoyer un message à un utilisateur en utilisant l'ID utilisateur comme clé) --Message multiplex (envoyer un message à plusieurs utilisateurs en utilisant l'ID utilisateur comme clé)
Vous pouvez accéder directement à l'API LINE avec curl, etc., mais depuis que j'ai installé line-bot-sdk-python dans l'article précédent J'écrirai du code pour envoyer un message push en Python. Implémenter lors de la lecture Implémentation de line-bot-sdk-python.
Puisqu'il s'agit d'une continuation de l'article précédent, nous continuerons en supposant que line-bot-sdk etc. a déjà été introduit.
Il peut être réalisé avec le code suivant. Si vous envoyez simplement un message, vous pouvez facilement l'implémenter comme suit.
push.py
from linebot import LineBotApi
from linebot.models import TextSendMessage
CHANNEL_ACCESS_TOKEN = "Définir le jeton d'accès au canal"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
def main():
to = "Spécifiez l'ID utilisateur"
messages = TextSendMessage(text="Test d'envoi de notifications push")
line_bot_api.push_message(to, messages=messages)
if __name__ == "__main__":
main()
Lorsque je l'ai exécuté, un message a été envoyé par Bot comme suit.
J'envoie des messages à plusieurs utilisateurs car je n'ai qu'un seul compte LINE Je n'ai pas été en mesure de confirmer s'il sera envoyé à plusieurs personnes.
multicast.py
from linebot import LineBotApi
from linebot.models import TextSendMessage
CHANNEL_ACCESS_TOKEN = "Définir le jeton d'accès au canal"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
def main():
to = ["Spécifiez l'ID utilisateur à envoyer en tant que type de liste"]
messages = TextSendMessage(text="Test multiplicateur")
line_bot_api.multicast(to, messages=messages)
if __name__ == "__main__":
main()
Je n'ai pas compris un peu. Il semble qu'il sera réduit en fonction de l'âge et du sexe de l'utilisateur, mais on ne sait pas comment l'âge et le sexe sont définis en tant qu'informations uniques de l'utilisateur. Vous pouvez également obtenir ces informations en essayant d'obtenir votre profil avec API pour obtenir le profil utilisateur. Zu. Dans un prochain numéro, j'enquêterai un peu plus.
J'envoie un message à tous les amis de Bot, mais je ne suis toujours pas sûr car je suis le seul ami de Bot.
broadcast.py
from linebot import LineBotApi
from linebot.models import TextSendMessage
CHANNEL_ACCESS_TOKEN = "Définir le jeton d'accès au canal"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
def main():
messages = TextSendMessage(text="Test de diffusion")
line_bot_api.broadcast(messages=messages)
if __name__ == "__main__":
main()
En plus des messages texte, line-bot-sdk-python prend également en charge l'envoi de tampons et d'images. Je n'ai vérifié que les tampons et les images cette fois, mais pour autant que je vois l'implémentation Il semble que les informations de localisation, etc. peuvent également être envoyées
Voir ici pour le package_id et le sticker_id requis pour spécifier le tampon. En regardant les comptes officiels des entreprises, il semble que certains timbres soient vendus dans les boutiques de timbres. On ne sait pas comment cela est réalisé. Enquêter un peu plus.
push_sticker.py
from linebot import LineBotApi
from linebot.models import StickerSendMessage
CHANNEL_ACCESS_TOKEN = "Définir le jeton d'accès au canal"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
def main():
to = "Spécifiez l'ID utilisateur"
messages = StickerSendMessage(package_id='11537', sticker_id='52002734')
line_bot_api.push_message(to, messages=messages)
if __name__ == "__main__":
main()
push_image.py
from linebot import LineBotApi
from linebot.models import ImageSendMessage
CHANNEL_ACCESS_TOKEN = "Définir le jeton d'accès au canal"
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
def main():
to = "Spécifiez l'ID utilisateur"
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()
Dans l'article précédent, j'ai écrit un nouvel article sur mes futurs problèmes personnels, mais de nouveaux problèmes sont revenus. De plus, nous mettrons à jour l'article ou créerons un nouvel article au fur et à mesure de la progression de l'enquête.
Je vous serais reconnaissant de bien vouloir me faire savoir s'il y a des erreurs dans les informations que j'ai fournies.
Recommended Posts