[PYTHON] L'histoire de la création d'un canal VIP dans le chatwork en interne

Allons-y

L'histoire de la création d'une chaîne VIP dans le jeu de l'entreprise

L'entrée ci-dessus était intéressante, j'ai donc créé une version de chatwork.

Chose que tu veux faire

--Préparez un canal anonyme et un compte bot pour parler. --Utilisez Chatwork Webhook avec votre compte bot. --Recevoir le webhook sur AWS API Gateway et lancer Lambda. --Depuis Lambda, utilisez l 'API Chatwork pour parler à un canal anonyme avec un compte de bot.

Faisons le

Faire du chatwork

Créez un canal anonyme et un compte bot pour parler. Ajoutez tous les utilisateurs avec lesquels vous souhaitez jouer à la chaîne anonyme. Après avoir créé un compte de bot, accédez à Nom du compte> Paramètres de l'API en haut à droite de l'écran ChatWork. image.png Définissez l'API afin qu'elle puisse être utilisée avec le compte bot créé.

Lorsque l'API devient disponible, créez d'abord un jeton API. (Je l'utiliserai plus tard) Créez également un nouveau webhook. image.png L'URL peut être modifiée plus tard, donc ça va ici. OK si l'événement est un événement de compte. Veuillez lui donner un nom.

Faire AWS

J'ai essayé de vérifier la demande envoyée depuis le Webhook de ChatWork avec Lambda Lisez ceci en premier. lis. Vous pouvez vous en faire une idée.

Créez une nouvelle fonction dans AWS Lambda. Puisque Python sera utilisé cette fois, veuillez définir le runtime sur Python 3.7 etc. image.png

Une fois créé, à partir de ** Add Trigger ** image.png Enregistrez la passerelle API. image.png Réglez-le comme ça. Ignorez tous les paramètres de sécurité pour un fonctionnement rapide, mais définissez-les si nécessaire.

Lorsque vous revenez à l'écran de réglage lambda image.png Comme vous pouvez le voir en bas de l'image, vous pouvez voir le point de terminaison de l'API un peu ci-dessous. Définissons ceci sur l'URL du Webhook de chatwork.

D'ailleurs, comme le cerveau ne voulait pas envoyer de POST à partir d'autres demandes, comme préparation côté code source [Vérification] J'ai immédiatement essayé la fonction Layer de Lambda #reinvent Ajoutez une couche avec un module de requêtes en vous référant à l'entrée ci-dessus. Bien sûr, il existe également un moyen de se rappeler comment utiliser urllib. Veuillez choisir celui qui estime que le coût est bon marché.

Créer une fonction

import json
import os
import requests

def lambda_handler(event, context):
    url = f'https://api.chatwork.com/v2/rooms/{os.environ['ROOM_ID']}/messages'
    headers = {'X-ChatWorkToken': os.environ['CW_KEY']}
    content = json.loads(event['body'])  #Le corps de l'événement semble venir comme une chaîne
    content = content['webhook_event']['body']  #Si vous en avez fait un événement de compte, voici le corps du message
    content = content.replace('[To:bot_account_id]nom du compte bot\n', '')  #Suppression du libellé entrant lorsqu'il est prononcé à
    params = {'body': f'{content}'}
    res = requests.post(url, data=params, headers=headers)
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

C'est le mouvement minimum du Taro. Écrivez ceci dans la partie éditeur de Lambda. En fait, il est préférable d'insérer l'authentification à l'aide de TOKEN fourni sur le Webhook, ou de modifier le contenu à renvoyer en fonction du résultat du traitement. La personne qui a écrit ceci voulait quand même le déplacer, alors je l'ai cassé. Je suis désolé

Je pense qu'il existe un champ de saisie pour les variables d'environnement juste en dessous de la partie éditeur, alors définissez l'ID du canal anonyme et le jeton API du compte anonyme. L'ID de la chaîne utilise le numéro dans l'URL lorsque la chaîne est ouverte dans le navigateur.

Essayez de bouger

va bouger. C'était bon.

en conclusion

Je l'ai fait pour faire une pause dans les heures supplémentaires, donc je ne suis pas confiant dans le contenu. Si vous voulez lancer Masakari, veuillez en lancer de plus en plus. Veuillez indiquer s'il y a quelque chose qui ne va pas. Je vais l'effacer.

Merci beaucoup.

Recommended Posts

L'histoire de la création d'un canal VIP dans le chatwork en interne
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
L'histoire de l'exportation d'un programme
L'histoire de la création d'un «espace de discussion sur l'esprit et le temps» exclusivement pour les ingénieurs de l'entreprise
L'histoire de la création d'un pilote standard pour db avec python.
L'histoire de la création d'un site qui répertorie les dates de sortie des livres
L'histoire du traitement A du blackjack (python)
L'histoire de la création d'un Bot qui affiche les membres actifs dans un canal spécifique de Slack avec Python
L'histoire selon laquelle le coût d'apprentissage de Python est faible
L'histoire de la recherche d'un magasin BOT (AI LINE BOT) pour Go To EAT dans la préfecture de Chiba (1)
Traitement d'image? L'histoire du démarrage de Python pour
L'histoire de la création d'un générateur d'icônes mel
L'histoire de Django créant une bibliothèque qui pourrait être un peu plus utile
Histoire de faire une recherche de magasin BOT (AI LINE BOT) pour Go To EAT dans la préfecture de Chiba (2) [Présentation]
L'histoire de sys.path.append ()
L'histoire du lancement d'un serveur Minecraft depuis Discord
Une histoire qui réduit l'effort de fonctionnement / maintenance
L'histoire de la création d'un réseau neuronal de génération musicale
Une histoire sur le changement du nom principal de BlueZ
Le problème Zip 4 Gbyte est une histoire du passé
Une histoire qui a analysé la livraison de Nico Nama.
Une histoire sur l'amélioration du programme pour le remplissage partiel des données d'image binarisées 3D
L'histoire du passage de WoSign à Let's Encrypt pour un certificat SSL gratuit
Je suis à Singapour en ce moment Une histoire sur la création d'un LineBot et la volonté de faire un travail mémorable
Éviter les pièges de l'utilisation d'un Mac (pour les utilisateurs Linux?)
L'histoire de la construction de Zabbix 4.4
L'histoire du champ de modèle Django disparaissant de la classe
L'histoire de la création d'un bot de boîte à questions avec discord.py
L'histoire de la sortie d'un outil de vérification de texte créé par Python sur GitHub x CircleCI pour la première fois
Une petite histoire addictive avec les permissions du répertoire spécifié par expdp (pour les débutants)
Mémorandum de l'outil de gestion de paquets Python ez_setup
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
L'histoire de la création d'un module qui ignore le courrier avec python
L'histoire de Python et l'histoire de NaN
Étape par étape pour créer un Dockerfile
L'histoire de la participation à AtCoder
L'histoire du "trou" dans le fichier
L'histoire du remontage du serveur d'application
[Pour les débutants chez AtCoder] Parlez de la quantité de calcul que vous voulez connaître approximativement
Une histoire d'essayer d'améliorer le processus de test d'un système vieux de 20 ans écrit en C
Une histoire sur la création d'un programme qui augmentera le nombre d'abonnés Instagram de 0 à 700 en une semaine
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
L'histoire d'un capteur de stationnement en 10 minutes avec le kit de démarrage GrovePi +
L'histoire de la création d'un robot LINE pour le petit-déjeuner d'une université de 100 yens avec Python
Remarques sur l'utilisation de KUnit, le mécanisme de test unitaire du noyau Linux
Apprendre le latin dans le but d'écrire un programme d'analyse de phrases latines (partie 1)
Une histoire sur la création d'une chaîne anonyme avec Slack à partir de zéro connaissance
L'histoire du développement d'une application WEB qui génère automatiquement des copies de capture [MeCab]
L'histoire d'une personne qui a commencé à viser un data scientist depuis un débutant
L'histoire de la création d'une caméra sonore avec Touch Designer et ReSpeaker
Parlez de la probabilité d'évasion d'une marche aléatoire sur une grille entière
L'histoire de la création d'un package qui accélère le fonctionnement de Juman (Juman ++) & KNP
Ce que les utilisateurs de Java ont pensé d'utiliser le langage Go pendant une journée
L'histoire de la création de Botonyan qui renvoie le contenu de Google Docs en réponse à un mot-clé spécifique sur Slack
Avec LSTM + Embedding, j'ai réaffirmé l'importance du prétraitement en PNL tout en créant un modèle pour discriminer les émotions des tweets.