Bonsoir, c'est @ 0yan. Aujourd'hui, lorsque j'ai intégré l'application Flask de Trello Bot pour LINE WORKS dans l'application Django de Bot qui prend en charge les requêtes LINE WORKS, j'étais accro à la différence de réception des données JSON (Dasai ...), alors je me sentais comme un enseignant foiré. écrire.
Il peut être reçu en tant que valeur de type dictionnaire avec data = request.json ['key']
.
Exemple spécifique (dans le cas de Flask)
@app.route('/webhook', methods=['HEAD', 'POST'])
def comment_notification_to_talk_room():
if request.method == 'HEAD':
return '', 200
elif request.method == 'POST':
action_type = request.json['action']['display']['translationKey'] #★ Coco
if action_type == 'action_comment_on_card':
card_name = request.json['action']['data']['card']['name']
user_name = request.json['action']['memberCreator']['fullName']
comment = request.json['action']['data']['text']
message = f'{user_name}Commenté.\n [carte]{card_name}\n [Commentaire]{comment}'
talk_bot.send_text_message(send_text=message)
return '', 200
else:
abort(400)
Vous devez convertir de JSON en type de dictionnaire, comme body = json.loads (request.body)
.
Exemple spécifique (pour Django)
def comment_notification_to_talk_room(request, bot_no, account_id=None, room_id=None):
talk_bot = TalkBotApi(api_id, server_api_consumer_key, server_id, private_key, domain_id, bot_no)
#Convertir le corps de la requête de JSON en type dictionnaire, action_Type d'extrait
body = json.loads(request.body) #★ Coco
action_type = body['action']['display']['translationKey']
#Envoyez les commentaires de Trello à la salle de conférence LINE WORKS
if action_type == 'action_comment_on_card':
card_name = body['action']['data']['card']['name']
user_name = body['action']['memberCreator']['fullName']
comment = body['action']['data']['text']
message = f'{user_name}Commenté.\n [carte]{card_name}\n [Commentaire]{comment}'
if account_id is not None:
talk_bot.send_text_message(send_text=message, account_id=account_id)
logger.info(f'ID de compte de réussite de la notification:{account_id}')
elif room_id is not None:
talk_bot.send_text_message(send_text=message, room_id=room_id)
logger.info(f'Notification de roomID réussie:{room_id}')
else:
logger.error('accoutId,Vous devez spécifier l'un ou l'autre roomId.')
Non, je passerais quelques heures à faire une chose aussi stupide ... J'espère que cet échec aide quelqu'un.
Recommended Posts