Hinzufügen von nicht sichtbaren benutzerdefinierten Feldern zur API

:bookmark: Diese Anleitung erklärt, wie Benutzer benutzerdefinierte Feldinformationen über die API verfügbar gemacht werden, ohne sie auf einer Benutzerkarte anzuzeigen.

:person_raising_hand: Erforderliche Benutzerebene: Administrator

Diese Anleitung führt Sie durch den Prozess, Benutzerdefinierte Feldinformationen über die API zugänglich zu machen, ohne sie auf einer Benutzerkarte anzuzeigen. Dies kann nützlich sein, wenn Sie programmgesteuert auf benutzerdefinierte Benutzerdaten zugreifen müssen, während Sie diese vor der allgemeinen Ansicht verbergen.

Erstellen eines benutzerdefinierten Benutzerfelds

  1. Erstellen Sie zuerst Ihr benutzerdefiniertes Benutzerfeld. Detaillierte Anweisungen finden Sie im Leitfaden Erstellen und Konfigurieren von benutzerdefinierten Benutzerfeldern.
  2. Sobald Sie Ihr benutzerdefiniertes Feld eingerichtet haben, speichern Sie es.

Finden der ID des benutzerdefinierten Benutzerfelds

  1. Navigieren Sie in Ihrem Browser zu /admin/config/user-fields.json.
  2. Suchen Sie Ihr neu erstelltes benutzerdefiniertes Feld und notieren Sie seine ID-Nummer.

Konfigurieren des API-Zugriffs

  1. Gehen Sie zu den Admin-Einstellungen Ihrer Website.
  2. Finden Sie entweder die Einstellung public user custom fields oder staff user custom fields:
    • Verwenden Sie public user custom fields, wenn die Daten für alle API-Benutzer zugänglich sein sollen.
    • Verwenden Sie staff user custom fields, wenn der Zugriff nur auf API-Schlüssel des Personals beschränkt werden soll.
  3. Geben Sie das benutzerdefinierte Feld im Format user_field_X ein, wobei X die zuvor notierte ID-Nummer ist.
    Wenn Ihre benutzerdefinierte Feld-ID beispielsweise 7 ist, geben Sie user_field_7 ein.

Zugriff auf die benutzerdefinierten Feldinformationen

Nach der Konfiguration werden die benutzerdefinierten Feldinformationen im Endpunkt /u/[USERNAME].json im Abschnitt “User Fields” enthalten sein.

Suchen von Benutzern nach benutzerdefinierten Feldwerten

Sie können Benutzer anhand ihrer benutzerdefinierten Feldwerte über die API suchen:

  1. Stellen Sie sicher, dass das benutzerdefinierte Feld in seinen Einstellungen die Option “suchbar” aktiviert hat.
  2. Verwenden Sie den Endpunkt /directory_items.json mit Ihren Abfrageparametern.

Hier ist ein Beispiel für einen API-Aufruf:

https://yourdomain.com/directory_items.json?period=weekly&order=likes_received&name=SearchTerm&user_field_ids=1|2
  • user_field_ids: Geben Sie an, nach welchen benutzerdefinierten Feldern gesucht werden soll (z. B. user_field_ids=5, um nur im benutzerdefinierten Feld mit der ID 5 zu suchen).
  • name: Der Suchbegriff, nach dem in benutzerdefinierten Feldern, Benutzernamen und möglicherweise vollständigen Namen gesucht werden soll.

Hinweis: Diese Suche ist nicht ausschließlich auf benutzerdefinierte Felder beschränkt und kann auch Ergebnisse basierend auf Übereinstimmungen mit dem Benutzernamen oder dem vollständigen Namen liefern.

Weitere Details zu verfügbaren Parametern finden Sie in der API-Dokumentation.

Zusätzliche Ressourcen

7 „Gefällt mir“

Das ist großartig, danke! Gibt es eine Möglichkeit, einen Benutzer anhand eines Werts in einem benutzerdefinierten Feld über die API zu finden?

1 „Gefällt mir“

Ja, über Abfrageparameter:

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

Beschränken Sie die benutzerdefinierten Felder des Benutzers, nach denen gesucht werden soll, indem Sie den letzten Parameter user_field_ids=1|2 ändern.
Zum Beispiel user_field_ids=5, um nur im benutzerdefinierten Feld mit der ID 5 zu suchen.

Es gibt auch ein paar andere verfügbare Parameter, die Sie in der API-Dokumentation finden können (Dokumente, die die Benutzerfelder nicht erwähnen, aber Sie können die API leicht reverse-engineeren).

Die benutzerdefinierten Felder müssen die Option „durchsuchbar“ aktiviert haben, damit die Abfrage funktioniert:

Beachten Sie auch, dass die Abfrage nicht nur in benutzerdefinierten Feldern sucht, sondern auch in Benutzernamen und möglicherweise vollständigen Namen. Ich glaube, es gibt keine integrierte Funktion, um nur nach benutzerdefinierten Feldern zu filtern.

3 „Gefällt mir“