Las insignias personalizadas que hayas creado en tu foro se pueden otorgar a través de la API. Esta es una excelente manera de conceder insignias sin necesidad de usar SQL personalizado para insignias.
Para otorgar una insignia mediante la API, necesitas conocer el nombre de usuario del usuario al que deseas otorgarla, así como el ID (o el nombre) de la insignia que deseas conceder. También debes asegurarte de haber generado una clave API en la sección Admin > API > Keys de tu sitio (/admin/api/keys).
Encontrar el ID de la insignia
Puedes obtener el ID de la insignia desde la URL de la misma. Ve a la sección Admin/Insignias y haz clic en la insignia que deseas otorgar. La URL se verá algo así: https://forum.example.com/admin/badges/102. El último número en la URL es el ID de la insignia.
Realizar la llamada a la API
Para probar una llamada a la API, puedes intentar otorgar una insignia usando curl o Postman. Así es como otorgo una insignia desde la terminal de mi computadora con curl.
Primero, para facilitar las cosas, establece una variable api_key:
api_key=tu_api_key
Luego, para otorgar una insignia con el ID 102 al usuario bobby:
curl -X POST "https://forum.example.com/user_badges" \
-H "Api-Key: $api_key" \
-H "Api-Username: system" \
-F "username=bobby" \
-F "badge_id=102" \
-F "reason=https://forum.example.com/t/whats-the-best-photo-youve-ever-taken/160/2"
En lugar de badge_id, también puedes usar badge_name para identificar la insignia por su nombre:
-F "badge_name=Mi Insignia Personalizada"
El parámetro reason es opcional. Si lo proporcionas, debe establecerse en la URL de un tema o de una publicación en tu sitio.
Deberías recibir una respuesta JSON con detalles sobre la insignia y cuándo se otorgó.