Las redirecciones abiertas tienden a poner nerviosas a las personas; en este caso, si agregas, por ejemplo, Nextcloud, significa que las personas podrán usar una URL en Nextcloud para generar una clave en Discourse y luego redirigir de regreso a Nextcloud.
En el paso 6, ¿a qué llamada de API te refieres específicamente?
¡O si alguien más lo sabe, por favor responda!
Las llamadas a la API a las que se hace referencia en el paso seis son las llamadas que desee realizar. Solo se refiere a las llamadas que hacen lo que realmente desea hacer con el sitio de Discourse.
En mi caso, tenía una aplicación separada que interactuaba con un sitio de Discourse, haciendo cosas como crear publicaciones en el sitio de Discourse basándose en la acción que un usuario realizaba en la aplicación separada. La aplicación iniciaba sesión del usuario, el usuario hacía algunas cosas y luego la aplicación realizaba llamadas a la API POST y PUT para crear / editar publicaciones de Discourse de ese usuario.
Entiendo. En mi caso, solo quiero hacer que un usuario inicie sesión en mi sitio web, realice la autorización de Discourse, luego redirija y luego mi sitio web pueda simplemente leer su nombre de usuario, correo electrónico, avatar, ID, etc., y crear un nuevo usuario en nuestro sitio. @JQ331
Entonces estás en el lugar equivocado, no puedes usar las claves de API de usuario para esto.
En su lugar, deberás configurar Discourse como el proveedor de DiscourseConnect y tu sitio web como un cliente de DiscourseConnect. Consulta Use Discourse as an identity provider (SSO, DiscourseConnect)
¿Tengo razón al decir que para algo así necesitaré acceso a la clave secreta del sitio?
No existe una “clave secreta” como tal, pero necesitarás acceso de administrador a Discourse para configurarla.
Hola, intenté implementar esta clave de API de usuario, pero parece que tiene un limitador de velocidad de API. Recibí 429 después de algunas llamadas a la API. ¿Hay alguna configuración para esto? Uso alojamiento de pago.
Aquí hay más información sobre los límites de velocidad.
Si está alojando con Communiteq, póngase en contacto con nuestro servicio de asistencia a través de su panel de control para que se configure.
Hola @RGJ, gracias por tu respuesta. Mi empresa tiene el plan Estándar y el de Negocios, pero no veo el escritorio de soporte en el panel de control. En cambio, envié un correo electrónico a team@discourse.org, ¿es correcto?
Si está alojado con nosotros en Discourse (en lugar de con @RGJ en Communiteq), esa es efectivamente la forma correcta de ponerse en contacto con nuestro equipo de soporte.
![]()
¡Hola!
Estoy escribiendo una aplicación que consume esta API.
¿Hay alguna forma de obtener la información del usuario (principalmente el nombre de usuario) de esta?
¿O necesito pedir el nombre de usuario manualmente y luego solicitarlo más tarde?
Bienvenido, @gilice.
No quieres decir que estás consumiendo la API para obtener claves de API, sino que estás intentando hacer algo con los usuarios.
Esto podría ayudar: Ingeniería inversa de la API de Discourse.
Pero si estás intentando obtener el nombre de usuario de un usuario, una forma de hacerlo es buscar la dirección de correo electrónico en la ruta admin/users.
Ayudaría si dijeras qué estás intentando hacer.
¡Hola! Gracias por la respuesta, quizás debería haberlo expresado mejor.
La pregunta que quería hacer: puedo obtener la clave de API que pertenece a un usuario. Entonces, ¿puedo obtener el perfil del usuario (nombre de usuario, foto de perfil, etc.) sin pedir su nombre de usuario y usando el método getUser?
No está claro cómo funcionaría esto. ¿De dónde quieres obtener la clave de API? Como puedes ver en el flujo, el usuario necesita iniciar sesión para obtener una clave en primer lugar, y para ello necesita su información de inicio de sesión normal. ¿Puedes explicar más qué estás intentando hacer?
Hola a todos,
En mi aplicación, estoy utilizando claves API de usuario para lograr algunas de las funcionalidades de Discourse. Por error, he autorizado el inicio de sesión (usando la API /user-api-key/new) con la cuenta de Discourse incorrecta.
He revocado el acceso a la aplicación desde la cuenta de Discourse incorrecta. Sin embargo, cuando intento autorizar usando la cuenta de Discourse correcta, obtengo un error. Cuando miré los registros, encontré el siguiente error:
ActiveRecord::RecordNotUnique (PG::UniqueViolation: ERROR: duplicate key value violates unique constraint “index_user_api_keys_on_client_id” DETAIL: Key (client_id)=
Basándome en el error, supongo que no podemos asociar 2 cuentas de usuario para el mismo client_id.
¿Hay alguna manera de superar este problema?
Además, ¿existe alguna API para actualizar el client_id de una clave API de usuario incluso cuando la clave API está revocada?
¡Gracias!
¿Qué significa exactamente?
Estoy escribiendo una aplicación que solicita datos en nombre de un usuario a través de una clave de API de usuario. El objetivo es evitar problemas de limitación de velocidad. ¿Cuándo exactamente la aplicación se encontrará con problemas de limitación de velocidad?
Creo que estás buscando algo como esto:
¡Sí! Eso es lo que quería. ¡¡¡Muchas gracias!!!
¿Podemos obtener una especificación OpenAPI para las claves API de usuario? O considere agregarlas a la documentación de especificaciones existente.
GitHub - discourse/discourse_api_docs: Discourse API Documentation
Para los desarrolladores posteriores, preferimos usar OpenAPI para generar la interfaz y la API que necesitamos.