Adicionando campos personalizados de usuário não visíveis à API

:bookmark: Este guia explica como expor dados de campos personalizados de usuário através da API sem exibi-los em um cartão de usuário.

:person_raising_hand: Nível de usuário necessário: Administrador

Este guia irá guiá-lo através do processo de tornar os dados de Campos Personalizados de Usuário acessíveis via API sem exibi-los em um cartão de usuário. Isso pode ser útil quando você precisa acessar programaticamente dados personalizados de usuários, mantendo-os ocultos da visualização geral.

Criando um Campo Personalizado de Usuário

  1. Primeiro, crie seu Campo Personalizado de Usuário. Para instruções detalhadas, consulte o guia para criar e configurar campos personalizados de usuário.
  2. Assim que configurar seu campo personalizado, salve-o.

Encontrando o ID do Campo Personalizado de Usuário

  1. Navegue até /admin/config/user-fields.json em seu navegador.
  2. Localize seu campo personalizado recém-criado e anote seu número de ID.

Configurando o Acesso à API

  1. Vá para as configurações de administração do seu site.
  2. Encontre a configuração public user custom fields (campos personalizados de usuário públicos) ou staff user custom fields (campos personalizados de usuário da equipe):
    • Use public user custom fields se desejar que os dados sejam acessíveis a todos os usuários da API.
    • Use staff user custom fields se desejar restringir o acesso apenas a chaves de API da equipe.
  3. Insira o campo personalizado no formato user_field_X, onde X é o número de ID que você anotou anteriormente.
    Por exemplo, se o ID do seu campo personalizado for 7, você inserirá user_field_7.

Acessando os Dados do Campo Personalizado

Uma vez configurado, os dados do campo personalizado serão incluídos no endpoint /u/[USERNAME].json na seção “User Fields” (Campos de Usuário).

Pesquisando Usuários por Valores de Campos Personalizados

Você pode pesquisar usuários com base em seus valores de campos personalizados usando a API:

  1. Certifique-se de que o campo personalizado tenha a opção “searchable” (pesquisável) marcada em suas configurações.
  2. Use o endpoint /directory_items.json com seus parâmetros de consulta.

Aqui está um exemplo de chamada de API:

https://yourdomain.com/directory_items.json?period=weekly&order=likes_received&name=SearchTerm&user_field_ids=1|2
  • user_field_ids: Especifique quais campos personalizados pesquisar (por exemplo, user_field_ids=5 para pesquisar apenas no campo personalizado ID 5).
  • name: O termo de pesquisa a ser procurado em campos personalizados, nomes de usuário e possivelmente nomes completos.

Nota: Esta pesquisa não é exclusiva para campos personalizados e pode retornar resultados com base em correspondências de nome de usuário ou nome completo também.

Para mais detalhes sobre os parâmetros disponíveis, consulte a documentação da API.

Recursos Adicionais

7 curtidas

Isso é ótimo, obrigado! Existe uma maneira de encontrar um usuário por um valor em um campo personalizado via API?

1 curtida

Sim, usando parâmetros de consulta:

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

Restrinja os campos personalizados do usuário para pesquisar modificando o último parâmetro user_field_ids=1|2.
Por exemplo, user_field_ids=5 para pesquisar apenas no campo personalizado ID 5.

Há também alguns outros parâmetros disponíveis que você pode encontrar na documentação da API (documentos que não mencionam os campos do usuário, mas você pode facilmente fazer engenharia reversa da API.

Os campos personalizados devem ter a opção pesquisável marcada para que a consulta funcione:

Além disso, observe que a consulta não pesquisará apenas em campos personalizados, mas também em nomes de usuário e talvez nomes completos. Acho que não há um recurso integrado para filtrar apenas por campos personalizados.

3 curtidas