Agregar campos personalizados de usuario no visibles en la API

:bookmark: Esta guía explica cómo exponer datos de campos personalizados de usuario a través de la API sin mostrarlos en una tarjeta de usuario.

:person_raising_hand: Nivel de usuario requerido: Administrador

Esta guía te guiará a través del proceso de hacer que los datos de Campos Personalizados de Usuario sean accesibles a través de la API sin mostrarlos en una tarjeta de usuario. Esto puede ser útil cuando necesites acceder programáticamente a datos de usuario personalizados mientras los mantienes ocultos a la vista general.

Creación de un Campo Personalizado de Usuario

  1. Primero, crea tu Campo Personalizado de Usuario. Para obtener instrucciones detalladas, consulta la guía crear y configurar campos de usuario personalizados.
  2. Una vez que hayas configurado tu campo personalizado, guárdalo.

Búsqueda del ID del Campo Personalizado de Usuario

  1. Navega a /admin/config/user-fields.json en tu navegador.
  2. Localiza tu campo personalizado recién creado y anota su número de ID.

Configuración del Acceso a la API

  1. Ve a la configuración de administración de tu sitio.
  2. Busca la configuración public user custom fields (campos personalizados de usuario públicos) o staff user custom fields (campos personalizados de usuario del personal):
    • Usa public user custom fields si deseas que los datos sean accesibles para todos los usuarios de la API.
    • Usa staff user custom fields si deseas restringir el acceso solo a las claves de API del personal.
  3. Ingresa el campo personalizado en el formato user_field_X, donde X es el número de ID que anotaste anteriormente.
    Por ejemplo, si tu ID de campo personalizado es 7, ingresarías user_field_7.

Acceso a los Datos del Campo Personalizado

Una vez configurado, los datos del campo personalizado se incluirán en el endpoint /u/[USERNAME].json bajo la sección “User Fields” (Campos de Usuario).

Búsqueda de Usuarios por Valores de Campos Personalizados

Puedes buscar usuarios basándote en sus valores de campos personalizados utilizando la API:

  1. Asegúrate de que el campo personalizado tenga marcada la opción “searchable” (buscable) en su configuración.
  2. Usa el endpoint /directory_items.json con tus parámetros de consulta.

Aquí tienes un ejemplo de llamada a la API:

https://yourdomain.com/directory_items.json?period=weekly&order=likes_received&name=SearchTerm&user_field_ids=1|2
  • user_field_ids: Especifica en qué campos personalizados buscar (por ejemplo, user_field_ids=5 para buscar solo en el campo personalizado ID 5).
  • name: El término de búsqueda a encontrar en campos personalizados, nombres de usuario y posiblemente nombres completos.

Nota: Esta búsqueda no es exclusiva de los campos personalizados y puede devolver resultados basados en coincidencias de nombre de usuario o nombre completo también.

Para más detalles sobre los parámetros disponibles, consulta la documentación de la API.

Recursos Adicionales

7 Me gusta

¡Genial, gracias! ¿Hay alguna forma de encontrar un usuario por un valor en un campo personalizado a través de la API?

1 me gusta

Sí, usando parámetros de consulta:

Por ejemplo,
https://unicyclist.com/directory_items.json?period=weekly&order=likes_received&name=Flansberrium+G29&user_field_ids=1|2

Restringe los campos personalizados del usuario para buscar modificando el último parámetro user_field_ids=1|2.
Por ejemplo, user_field_ids=5 para buscar solo en el campo personalizado ID 5.

También hay un par de parámetros adicionales disponibles que puedes encontrar en la documentación de la API (documentación que no menciona los campos de usuario, pero puedes realizar ingeniería inversa de la API fácilmente).

Los campos personalizados deben tener la opción “searchable” marcada para que la consulta funcione:

Además, ten en cuenta que la consulta no buscará solo en campos personalizados, sino también en nombres de usuario y, posiblemente, en nombres completos. Creo que no hay una función integrada para filtrar solo por campos personalizados.

3 Me gusta