Ошибка в функции verify_key из библиотеки discord_interactions для Python: Подпись была подделана или повреждена

У меня есть такой фрагмент кода:

def interactions_view(request):
    if request.method == 'POST':
        try:
            raw_body = request.body
            signature = request.headers.get('X-Signature-Ed25519')
            timestamp = request.headers.get('X-Signature-Timestamp')

            logger.debug(f"Signature (type: {type(signature)}): {signature}")
            logger.debug(f"Timestamp (type: {type(timestamp)}): {timestamp}")
            logger.debug(f"Raw Body (type: {type(raw_body)}): {raw_body}")

            if not signature or not timestamp:
                return JsonResponse({'Error': 'Missing signature or timestamp'}, status=400)

            try:
                verify_key(raw_body, signature, timestamp, PUBLIC_KEY)
            except Exception as e:
                logger.error(f"Signature verification failed: {e}")
                return JsonResponse({'Error': 'Signature verification failed'}, status=401)

. . .

И он возвращает эту ошибку в журналах сервера: 2024-06-29T22:14:41.227687+00:00 app[web.1]: Signature was forged or corrupt

С кодом состояния 200 OK каждый раз, когда Discord пытается отправить ему POST-запрос для проверки (я хочу, чтобы мой сервер был конечной точкой взаимодействия для бота)

Я пробовал декодировать и кодировать ключи в биты и строки, и каждый раз он возвращает различные ошибки, такие как "не удалось конкатенировать объект str в байты" и наоборот, помимо всего прочего, отладка и захват информации журнала, как показано выше, но ничего не работает. Может ли кто-нибудь сказать мне, если я что-то упускаю? Или если я сделал что-то не так?

Вернуться на верх