Me devuelve un “404 no encontrado” con cualquier usuario que pruebe. Usando la misma URI, clave de API y nombre de usuario, sí puedo obtener categorías y grupos. ¿Alguna sugerencia?
@pfaffman No entiendo tu respuesta, no contiene una respuesta. Ese tema muestra cómo descubrir endpoints que no están documentados. Este sí lo está, y es una de las muy pocas llamadas a la API que no se pueden ingeniería inversa de esa manera, ya que este endpoint específico nunca es llamado por el frontend de Ember.
@mpemburn Debería funcionar, la documentación parece correcta. El ID externo es el ID en tu base de datos remota, que se pasa cuando tienes SSO habilitado. ¿Podrías compartir tu código?
¡Ups! La respuesta más frecuente a “la documentación de la API está rota, ¿cómo puedo…?” es lo que enlacé. Al observarlo con más detenimiento, resulta dolorosamente evidente que algo relacionado con IDs externos no se puede acceder a través de la interfaz de usuario. ¡Qué suerte tiene Mark de que tú estés prestando más atención!
Teoría #1: La mayoría de las veces (no siempre), el ID externo es un ID de base de datos y, por lo tanto, un valor numérico. ¿Estás seguro de que tu ID externo es mark89? ¿Devuelve SingleSignOnRecord.find_by(external_id: 'mark89') un registro de la base de datos?
Teoría #2: Tu sitio de staging no tiene SSO habilitado, lo cual suele ir de la mano con los IDs externos. ¿Estás seguro de que los IDs externos están presentes?
Espera… ¿Tus encabezados están en una cookie? Eso no está bien… debería ser así:
He intentado la misma solicitud con el plugin de Discourse para WordPress y tampoco funciona con él, aunque la solicitud para obtener un usuario por correo electrónico sí lo hace. Pensando que podría ser un problema con nuestra versión de prueba (sandbox) de Discourse (que es con la que he estado probando hasta ahora), lo intenté en nuestra instancia de producción, y la historia es la misma. No sé qué hacer a partir de aquí, pero realmente necesito que esto funcione.
¿Has revisado mis dos teorías que escribí antes de ver que estabas enviando las cabeceras de autenticación de la manera incorrecta?
Teoría #1:
La mayoría de las veces (no siempre) el ID externo es un ID de base de datos y, por lo tanto, un valor numérico. ¿Estás seguro de que tu ID externo es mark89? ¿Devuelve SingleSignOnRecord.find_by(external_id: 'mark89') un registro de la base de datos?
Teoría #2:
Tu sitio de staging no tiene SSO habilitado, lo cual suele ir de la mano con los IDs externos. ¿Estás seguro de que los IDs externos están presentes?
Bien, entonces el entorno de pruebas no tiene SSO configurado, pero la producción sí. Revisé mi registro de usuario en producción y, efectivamente, el ID externo está establecido y, de hecho, es un ID numérico. Cuando probé con las credenciales y la URI de producción, junto con el ID externo real, devuelve el mismo error 404.
Ah, y no estoy seguro de cómo probar SingleSignOnRecord.find_by(external_id: ‘mark89’). ¿Dónde se encuentra esta funcionalidad?