Guten Abend, das ist @ 0yan. Als ich heute die Flask-App von Trello Bot für LINE WORKS in die Django-App von Bot integriert habe, die LINE WORKS-Anfragen unterstützt, war ich süchtig nach dem Unterschied beim Empfang von JSON-Daten (Dasai ...) und fühlte mich wie ein durcheinandergebrachter Lehrer. schreiben.
Es kann als Wörterbuchtypwert mit data = request.json ['key']
empfangen werden.
Spezifisches Beispiel (im Fall von 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}Kommentiert.\n [Karte]{card_name}\n [Kommentar]{comment}'
talk_bot.send_text_message(send_text=message)
return '', 200
else:
abort(400)
Sie müssen von JSON in einen Wörterbuchtyp konvertieren, z. B. "body = json.loads (request.body)".
Spezifisches Beispiel (für 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)
#Konvertieren Sie den Anforderungshauptteil von JSON in den Wörterbuchtyp, die Aktion_Typ extrahieren
body = json.loads(request.body) #★ Coco
action_type = body['action']['display']['translationKey']
#Senden Sie Trellos Kommentare an den LINE WORKS-Talkroom
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}Kommentiert.\n [Karte]{card_name}\n [Kommentar]{comment}'
if account_id is not None:
talk_bot.send_text_message(send_text=message, account_id=account_id)
logger.info(f'Benachrichtigungserfolg accountID:{account_id}')
elif room_id is not None:
talk_bot.send_text_message(send_text=message, room_id=room_id)
logger.info(f'Benachrichtigung erfolgreich roomID:{room_id}')
else:
logger.error('accoutId,Sie müssen entweder roomId angeben.')
Nein, ich würde ein paar Stunden damit verbringen, so etwas Dummes zu tun ... Ich hoffe, dieser Fehler hilft jemandem.
Recommended Posts