Мне удалось заставить это работать. @RGJ любезно указал на следующее:
Когда Discourse выполняет перенаправление и отправляет API-ключ для декодирования как полезную нагрузку в URL перенаправления, этот ключ проходит URL-кодирование. Чтобы получить фактический API-ключ, необходимо выполнить URL-декодирование полезной нагрузки. В результате получается правильно работающий API-ключ (который соответствует длине ключа, отображаемого Discourse на экране).
Я привел шаги, которые я выполнил для достижения этого результата, здесь: