Utiliza el backend para realizar la llamada:
- si necesitas que sea segura,
- si necesitas que el backend procese el resultado
- si la(s) llamada(s) puede(n ser de larga duración
Si es de larga duración, colócalo en un Job.
Esto requerirá algo de Ruby en un Plugin y una de las gemas mencionadas anteriormente.
No es necesariamente tan fácil adentrarse en el desarrollo de plugins para Discourse; es una plataforma grande, compleja y con opiniones definidas, pero hay buenas guías oficiales aquí y MUCHOS plugins de código abierto existentes para revisar (consulta Customization > Plugin y los enlaces a GitHub). Intenta encontrar uno que haga algo similar y observa cómo se resuelve en el código.
Si es superficial, considera un Theme Component. Consulta las guías de desarrollo de temas aquí.
Observa ejemplos, como este: discourse-tc-quote-of-the-day/get-quote.js.es6 at master · merefield/discourse-tc-quote-of-the-day (github.com)