Cómo obtener la información de un usuario de una escuela usando el API de Teachlr Organizaciones usando un campo identificador del usuario

Para obtener la información de un usuario de una escuela de Teachlr Organizaciones usando un campo identificador, se debe realizar una petición de tipo GET al API de Teachlr Organizaciones utilizando el siguiente URL:

Key Value Content-Type application/json Authorization key_0123456789ABCDEFGHIJK

Nota: El valor de Authorization mostrado arriba es ficticio. Cada escuela tendrá su propia llave (key) que debe ser solicitada por el cliente.

Los distintos campos identificadores que se pueden usar son los siguientes:

Identificador Corresponde a
email Correo electrónico
username Nombre de usuario
employee_number Número de empleado
external_id ID externo (inicio de sesión con token)
alternative_id ID alternativo (inicio de sesión alternativo)

Cabe mencionar que con sólo incluir uno de ellos es suficiente, ya que estos valores son únicos por usuario.

Adicionalmente, se pueden especificar otros parámetros en la cadena de consulta, esto es, agregando al final del URL una estructura como la siguiente:

&teaching=false&certificates=true

Los distintos parámetros que se pueden especificar y sus posibles valores se detallan a continuación:


Parámetro
courses
Valor true | false
Valor por defecto true
Significado Mostrar la información de los cursos que el usuario está enseñando y aprendiendo
Ejemplo courses=false (no incluir los cursos)

Nota: dentro de cada uno de los cursos que el usuario está aprendiendo, se incluye también la información sobre el certificado obtenido, si lo hubiere.

Parámetro certificates
Valor true | false
Valor por defecto false
Significado Mostrar la información de los certificados obtenidos por el usuario
Ejemplo certificates=true (incluir la información de los certificados)

Nota: con el parámetro certificates en true la respuesta del API mostrará la información de todos los certificados que tiene el usuario, pero de forma separada del listado de cursos. La información de los certificados dentro de cada uno de los cursos que el usuario está aprendiendo se seguirá mostrando.

Los parámetros a continuación sólo tienen efecto si no se envía el parámetro courses (ya que por defecto su valor es true) o si se envía el parámetro courses con valor true:

Parámetro teaching
Valor true | false
Valor por defecto true
Significado Mostrar la información de los cursos que el usuario está enseñando
Ejemplo teaching=false (no incluir la información de cursos enseñando)
Parámetro learning
Valor true | false
Valor por defecto true
Significado Mostrar la información de los cursos que el usuario está aprendiendo
Ejemplo learning=false (no incluir la información de cursos aprendiendo)

Caso de ejemplo:

Se desea obtener la información del usuario cuyo nombre de usuario es «pedroperez» de la escuela https://escueladeprueba.teachlr.com, incluyendo también la información de los certificados de forma separada.

La petición al API de Teachlr Organizaciones se debe hacer al siguiente URL:

https://api.teachlr.com/escueladeprueba/api/users/query?username=pedroperez&certificates=true

Una implementación utilizando la función $.ajax() de jQuery sería como sigue:

$.ajax({
	url: "https://api.teachlr.com/escueladeprueba/api/users/query?username=
pedroperez&certificates=true",
	dataType: "json",
	type: "GET",
	contentType: "application/json",
	headers: {
		"Authorization": "key_0123456789ABCDEFGHIJK"
	},
	success: function(data) {
		// la petición fue exitosa
		console.log('data', data);
	},
	error: function(xhr, status, err) {
		// falló la petición
		console.log('xhr', xhr);
		console.log('status', status);
		console.log('err', err);
	}
});

Posibles respuestas del API:

Status: 200 OK

{
  "id": 670,
  "email": "pedroperez@dominio.com",
  "username": "pedroperez",
  "last_login_at": "2020-01-28 16:58:40",
  "last_activity_at": "2020-01-28 20:56:17",
  "created_at": "2016-07-25 15:23:14",
  "num_visit": 2219,
  "first_login_at": "2016-07-25 15:23:14",
  "register_type": "invitation",
  "phone": "04169998877",
  "organization_id": 1,
  "subscriber": false,
  "temp_email": false,
  "employee_number": "E01121979",
  "alternative_id": null,
  "external_id": null,
  "name": "Pedro",
  "last_name": "Pérez",
  "about": "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.",
  "job": "Analista/programador",
  "picture": {
    "thumb": "https://d2j3j1vpt0.../avatars/O04-32x32.jpg",
    "small": "https://d2j3j1vpt0.../avatars/O04-64x64.jpg",
    "medium": "https://d2j3j1vpt0.../avatars/O04-98x98.jpg",
    "large": "https://d2j3j1vpt0.../avatars/O04-198x198.jpg"
  },
  "department": "Informática",
  "country": "Venezuela",
  "organization_name": "MARIPEREZ, S.A.",
  "city": "Caracas",
  "identification_number": "14425125",
  "language": "es",
  "country_iso_code": "VE",
  "learning": [
    {
      "id": 1105,
      "title": "Nemo enim ip",
      "headline": "Ut enim ad minima veniam",
      "description": "<p>Voluptatem et sit totam rerum sint aut quos accusan</p>",
      "cover": {
        "thumb": "https://d2j3j1vpt0.../covers/1487605210-118x66.jpg",
        "small": "https://d2j3j1vpt0.../covers/1487605210-222x125.jpg",
        "medium": "https://d2j3j1vpt0.../covers/1487605210-236x132.jpg",
        "large": "https://d2j3j1vpt0.../covers/1487605210-506x285.jpg"
      },
      "slug": "nemo-enim-ip",
      "subscribed_at": "2016-07-27 20:57:59",
      "last_visit_at": "2017-10-17 14:53:42",
      "completation": "100",
      "is_completed": true,
      "completed_at": "2016-07-27 20:58:33",
      "url": "https://escueladeprueba.teachlr.com/#courses-online/nemo-enim-ip",
      "certificate": {
        "organization_name": "Escuela de prueba",
        "hash": "4c0b69dd3945",
        "granted_at": "2016-07-27 16:58:33",
        "use_custom_certif": false,
        "url": "https://escueladeprueba.teachlr.com/#certificate/4c0b69dd3945",
        "instructors": "Daniel Fuentes, Héctor López"
      }
    },
    {
      "id": 3048,
      "title": "At vero eos et accusamus et",
      "headline": "Quis autem vel eum iure.",
      "description": "<p>Lorem ipsum dolor sit amet, consectetuer adipis.<p>",
      "cover": {
        "thumb": "https://d2j3j1vpt0.../img/course_cover-118x66.jpg",
        "small": "https://d2j3j1vpt0.../img/course_cover-222x125.jpg",
        "medium": "https://d2j3j1vpt0.../img/course_cover-236x132.jpg",
        "large": "https://d2j3j1vpt0.../img/course_cover-506x285.jpg"
      },
      "slug": "at-vero-eos",
      "subscribed_at": "2018-02-26 19:27:57",
      "last_visit_at": "2018-10-17 13:20:34",
      "completation": "50",
      "is_completed": false,
      "completed_at": null,
      "url": "https://escueladeprueba.teachlr.com/#courses-online/at-vero-eos",
      "certificate": null
    },
    {
      "id": 247,
      "title": "Curabi ullam",
      "headline": "Ut enim ad minima veniam",
      "description": "<p>Donec pede justo, fringilla vel, aliquet nec</p>",
      "cover": {
        "thumb": "https://d2j3j1vpt0.../covers/1452121219-118x66.jpg",
        "small": "https://d2j3j1vpt0.../covers/1452121219-222x125.jpg",
        "medium": "https://d2j3j1vpt0.../covers/1452121219-236x132.jpg",
        "large": "https://d2j3j1vpt0.../covers/1452121219-506x285.jpg"
      },
      "slug": "curabi-ullam",
      "subscribed_at": "2019-10-12 13:04:18",
      "last_visit_at": "2019-10-16 11:36:41",
      "completation": "75",
      "is_completed": true,
      "completed_at": "2019-10-16 09:35:24",
      "url": "https://escueladeprueba.teachlr.com/#courses-online/curabi-ullam",
      "certificate": {
        "organization_name": "Escuela de prueba",
        "hash": "2a05aa14d2df",
        "granted_at": "2019-10-16 09:35:24",
        "use_custom_certif": false,
        "url": "https://escueladeprueba.teachlr.com/#certificate/2a05aa14d2df",
        "instructors": "Antonio González, Luisa Campos"
      }
    }
  ],
  "teaching": [
    {
      "id": 40,
      "title": "Done quam feli",
      "headline": "Donec pede justo, fringilla vel, aliquet nec, vulputate eget",
      "description": "<p>In enim justo, rhoncus ut, imperdiet a, venenatis.</p>",
      "cover": {
        "thumb": "https://d2j3j1vpt0.../covers/2457412546-118x66.jpg",
        "small": "https://d2j3j1vpt0.../covers/2457412546-222x125.jpg",
        "medium": "https://d2j3j1vpt0.../covers/2457412546-236x132.jpg",
        "large": "https://d2j3j1vpt0.../covers/2457412546-506x285.jpg"
      },
      "slug": "done-quam-feli",
      "url": "https://escueladeprueba.teachlr.com/#courses-online/done-quam-feli"
    },
    {
      "id": 157,
      "title": "Maecenas temp",
      "headline": "Nam quam nunc, blandit vel, luctus pulvinar.",
      "description": "<p>Maecenas nec odio et ante tincidunt tempus.</p>",
      "cover": {
        "thumb": "https://d2j3j1vpt0.../img/course_cover-118x66.jpg",
        "small": "https://d2j3j1vpt0.../img/course_cover-222x125.jpg",
        "medium": "https://d2j3j1vpt0.../img/course_cover-236x132.jpg",
        "large": "https://d2j3j1vpt0.../img/course_cover-506x285.jpg"
      },
      "slug": "maecenas-temp",
      "url": "https://escueladeprueba.teachlr.com/#courses-online/maecenas-temp"
    }
  ],
  "certificates": [
    {
      "organization_name": "Escuela de prueba",
      "hash": "4c0b69dd3945",
      "granted_at": "2016-07-27 16:58:33",
      "use_custom_certif": false,
      "url": "https://escueladeprueba.teachlr.com/#certificate/4c0b69dd3945",
      "instructors": "Daniel Fuentes, Héctor López",
      "course": {
        "id": 1105,
        "title": "Nemo enim ip",
        "headline": "Ut enim ad minima veniam",
        "description": "<p>Voluptatem et sit totam rerum sint aut quos accusan</p>",
        "cover": {
          "thumb": "https://d2j3j1vpt0.../covers/1487605210-118x66.jpg",
          "small": "https://d2j3j1vpt0.../covers/1487605210-222x125.jpg",
          "medium": "https://d2j3j1vpt0.../covers/1487605210-236x132.jpg",
          "large": "https://d2j3j1vpt0.../covers/1487605210-506x285.jpg"
        },
        "slug": "nemo-enim-ip",
        "url": "https://escueladeprueba.teachlr.com/#courses-online/nemo-enim-ip"
      }
    },
    {
      "organization_name": "Escuela de prueba",
      "hash": "2a05aa14d2df",
      "granted_at": "2019-10-16 09:35:24",
      "use_custom_certif": false,
      "url": "https://escueladeprueba.teachlr.com/#certificate/2a05aa14d2df",
      "instructors": "Antonio González, Luisa Campos",
      "course": {
        "id": 247,
        "title": "Curabi ullam",
        "headline": "Ut enim ad minima veniam",
        "description": "<p>Donec pede justo, fringilla vel, aliquet nec</p>",
        "cover": {
          "thumb": "https://d2j3j1vpt0.../covers/1452121219-118x66.jpg",
          "small": "https://d2j3j1vpt0.../covers/1452121219-222x125.jpg",
          "medium": "https://d2j3j1vpt0.../covers/1452121219-236x132.jpg",
          "large": "https://d2j3j1vpt0.../covers/1452121219-506x285.jpg"
        },
        "slug": "curabi-ullam",
        "url": "https://escueladeprueba.teachlr.com/#courses-online/curabi-ullam"
      }
    }
  ],
  "groups": [
    {
      "id": 33,
      "name": "Grupo sobre palabras",
      "description": "Muy lejos, más allá de las montañas de palabras...",
      "created_at": "2017-03-09 12:48:39",
      "is_public": true
    },
        {
      "id": 51,
      "name": "Nel blu dipinto di blu",
      "description": "Domenico Modugno 1958",
      "created_at": "2018-07-29 15:25:39",
      "is_public": false
    },
    {
      "id": 24,
      "name": "grupo 20",
      "description": null,
      "created_at": "2017-02-20 16:57:17",
      "is_public": false
    }
  ]
}

Esta respuesta se obtiene cuando la petición fue exitosa. La respuesta de ejemplo muestra la información del usuario con tres (3) cursos aprendiendo, de los cuales ha obtenido el certificado de dos de ellos; dos (2) cursos enseñando y, separadamente, el listado de certificados que tiene (2).

Status: 400 Bad Request

[«Bad request»]

Esta respuesta se obtiene cuando la petición falla.

Status: 401 Unauthorized

[«Unauthorized»]

Esta respuesta se obtiene cuando la llave (key) enviada en la cabecera «Authorization» de la petición no es válida.

Status: 404 Not Found

[«Not Found»]

Esta respuesta se obtiene cuando el parámetro username enviado no existe o el URL al cual se está haciendo la petición está incorrecto.

Leave A Comment?