Ajouter des champs personnalisés utilisateur non visibles à l'API

:bookmark: Ce guide explique comment exposer les données des champs personnalisés utilisateur via l’API sans les afficher sur une carte utilisateur.

:person_raising_hand: Niveau utilisateur requis : Administrateur

Ce guide vous guidera à travers le processus de mise à disposition des données des champs personnalisés utilisateur via l’API sans les afficher sur une carte utilisateur. Cela peut être utile lorsque vous avez besoin d’accéder par programme aux données utilisateur personnalisées tout en les gardant cachées à la vue générale.

Création d’un champ personnalisé utilisateur

  1. Tout d’abord, créez votre champ personnalisé utilisateur. Pour des instructions détaillées, consultez le guide de création et de configuration des champs utilisateur personnalisés.
  2. Une fois que vous avez configuré votre champ personnalisé, enregistrez-le.

Recherche de l’ID du champ personnalisé utilisateur

  1. Accédez à /admin/config/user-fields.json dans votre navigateur.
  2. Localisez votre champ personnalisé nouvellement créé et notez son numéro d’ID.

Configuration de l’accès à l’API

  1. Accédez aux paramètres d’administration de votre site.
  2. Trouvez le paramètre public user custom fields (champs personnalisés utilisateur publics) ou staff user custom fields (champs personnalisés utilisateur du personnel) :
    • Utilisez public user custom fields si vous souhaitez que les données soient accessibles à tous les utilisateurs de l’API.
    • Utilisez staff user custom fields si vous souhaitez restreindre l’accès aux seules clés API du personnel.
  3. Entrez le champ personnalisé au format user_field_X, où X est le numéro d’ID que vous avez noté précédemment.
    Par exemple, si votre ID de champ personnalisé est 7, vous entrerez user_field_7.

Accès aux données du champ personnalisé

Une fois configuré, les données du champ personnalisé seront incluses dans le point de terminaison /u/[USERNAME].json sous la section “User Fields”.

Recherche d’utilisateurs par valeurs de champs personnalisés

Vous pouvez rechercher des utilisateurs en fonction de leurs valeurs de champs personnalisés à l’aide de l’API :

  1. Assurez-vous que l’option “searchable” (recherchable) est cochée dans les paramètres du champ personnalisé.
  2. Utilisez le point de terminaison /directory_items.json avec vos paramètres de requête.

Voici un exemple d’appel API :

https://yourdomain.com/directory_items.json?period=weekly&order=likes_received&name=SearchTerm&user_field_ids=1|2
  • user_field_ids : Spécifiez les champs personnalisés à rechercher (par exemple, user_field_ids=5 pour rechercher uniquement dans le champ personnalisé ID 5).
  • name : Le terme de recherche à trouver dans les champs personnalisés, les noms d’utilisateur et éventuellement les noms complets.

Remarque : Cette recherche n’est pas exclusive aux champs personnalisés et peut également renvoyer des résultats basés sur des correspondances de nom d’utilisateur ou de nom complet.

Pour plus de détails sur les paramètres disponibles, consultez la documentation de l’API.

Ressources supplémentaires

7 « J'aime »

C’est super, merci ! Existe-t-il un moyen de trouver un utilisateur par une valeur dans un champ personnalisé via l’API ?

1 « J'aime »

Oui, en utilisant les paramètres de requête :

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

Restreignez les champs personnalisés de l’utilisateur à rechercher en modifiant le dernier paramètre user_field_ids=1|2.
Par exemple, user_field_ids=5 pour rechercher uniquement dans le champ personnalisé ID 5.

Il existe également quelques autres paramètres disponibles que vous pouvez trouver dans la documentation de l’API (documentation qui ne mentionne pas les champs utilisateur, mais vous pouvez facilement rétro-concevoir l’API.

Les champs personnalisés doivent avoir l’option “recherchable” cochée pour que la requête fonctionne :

Notez également que la requête ne recherchera pas uniquement dans les champs personnalisés, mais aussi dans les noms d’utilisateur et peut-être les noms complets. Je pense qu’il n’existe pas de fonctionnalité intégrée pour filtrer uniquement par champs personnalisés.

3 « J'aime »