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

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

https://api.teachlr.com/<dominio>/api/users/<username>

En donde <dominio> se debe sustituir por el dominio teachlr de la escuela (no el dominio personalizado) y <username> por el nombre de usuario del usuario que se desea consultar.

En la petición se deben enviar las siguientes dos cabeceras:

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.

Adicionalmente, se pueden especificar parámetros mediante una 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/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/
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",
  "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",
  "subscriber": false,
  "temp_email": false,
  "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",
  "city": "Caracas",
  "identification_number": "14425125",
  "language": "es",
  "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"
      }
    }
  ]
}

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?