Acceder
Inicio
Comunidad
Artículos
Eventos
Utilidades
Foro
fredito: Ay, no me ha encantado...
Nacho!: Me encantan los...
goticAQP: Ya es mía!!! hermosa...
goticAQP: Hermosas las 2 plaquitas,...
Nacho!: Muchísimas gracias...
Nacho!: Oh, me encanta para...
Equipo
Vacantes
Contacto
Términos y Condiciones
Documentación Habbo API Oficial (Leído 5985 veces)
‹‹ Regresar
1
Reportar Tema
SoyJoaquin.
Mensajes: 81
Respetos: -
Estado: Offline
Últ. mod hace 10 años por SoyJoaquin. | Publicado hace 10 años



Como pocos sabrán, hasta hace ya algunos años Sulake contaba con un Dev Center destinado a su juego "estrella" Habbo Hotel.

Este Dev Center fue clausurado tras la salida del Game Center a comienzos del año 2014. En el se exponía una muy limitada API para que los usuarios con conocimientos en el área tuviesen la posibilidad de  desarrollar aplicaciones interactivas para el uso de los usuarios dentro del Hotel bajo el nombre de la compañía (Sulake) a cambio de recibir una remuneración económica por tu trabajo. Aplicaciones como Habbo Stories, Fast Food Habbo, Habbo Speedway encabezaban la lista de las decenas de juegos desarrollados por estos usuarios, incluidos en el Game Center y por supuesto, en otras plataformas móviles como es el caso de Android e iOS.

Indagando un poco por la red, me encuentro con una muy extraña y poco documentada API incluida en el nuevo Homepage de Habbo Hotel Internacional (COM), por el momento solo he conseguido dos endpoint referentes a Esta API y la he ido documentando según los datos que he ido extrayendo de ella.

¿Curioso?, empezamos...


API:
URL: https://www.habbo.com/api/public/users (GET user data)
Parámetros:

  • name (string) -> Habbo nombre



Petición:
GET
https://www.habbo.com/api/public/users?name={username}

Descripción: Información resumida del usuario.

Respuesta:
JSON
{
"uniqueId": (string),
"name": (string),
"figureString": (string),
"selectedBadges": [
{
"badgeIndex": (int),
"code": (string),
"name": (string),
"description": (string)
},
{
"badgeIndex": (int),
"code": (string),
"name": (string),
"description": (string)
}
// ...
],
"motto": (string),
"memberSince": (string),
"profileVisible": (bool)
}



  • uniqueId (string) -> Identificador del usuario.

  • name (string) -> Nombre del usuario.

  • figureString (string) -> Avatar string image del usuario.

  • selectedBadges (object) -> Placas seleccionadas (Max. 5).

  • selectedBadges.badgeIndex (int) -> Identificador de posición de la placa en el perfil.

  • selectedBadges.code (string) -> Código de la placa.

  • selectedBadges.name (string) -> Nombre de la placa.

  • selectedBadges.description (string) -> Descripción de la placa.

  • motto (string) -> Misión del usuario.

  • memberSince (string) -> (UTC time) Fecha de creación del personaje.

  • profileVisible  (bool) -> True si tiene el perfil visible.




Petición:
GET
https://www.habbo.com/api/public/users/{username.uniqueId}/profile

Descripción: Información más detallados del usuario.

Respuesta:
JSON
{
"user": {
"uniqueId": (string),
"name": (string),
"figureString": (string),
"selectedBadges": [
{
"badgeIndex": (int),
"code": (string),
"name": (string),
"description": (string)
},
{
"badgeIndex": (int),
"code": (string),
"name": (string),
"description": (string)
}
// ...
],
"motto": (string),
"memberSince": (string),
"profileVisible": (bool)
},
"friends": [
{
"name": (string),
"motto": (string),
"uniqueId": (string),
"figureString": (string)
},
{
"name": (string),
"motto": (string),
"uniqueId": (string),
"figureString": (string)
}
// ...
],
"groups": [
{
"id": (string),
"name": (string),
"description": (string),
"type": (string),
"badgeCode": (string),
"roomId": (string),
"primaryColour": (string),
"secondaryColour": (string),
"isAdmin": (bool)
},
{
"id": (string),
"name": (string),
"description": (string),
"type": (string),
"badgeCode": (string),
"roomId": (string),
"primaryColour": (string),
"secondaryColour": (string),
"isAdmin": (bool)
}
// ...
],
"rooms": [
{
"id": (string),
"name": (string),
"description": (string),
"ownerUniqueId": (string)
},
{
"id": (string),
"name": (string),
"description": (string),
"ownerUniqueId": (string)
}
// ...
],
"badges": [
{
"code": (string),
"name": (string),
"description": (string)
},
{
"code": (string),
"name": (string),
"description": (string)
}
// ...
]
}



  • user (object) -> Datos del usuario.

  • user.uniqueId (string) -> Identificador del usuario.

  • user.name (string) -> Nombre del usuario.

  • user.figureString (string) -> Avatar string image del usuario.

  • user.selectedBadges (object) -> Placas seleccionadas (Max. 5).

  • user.selectedBadges.badgeIndex (int) -> Identificador de posición de la placa en el perfil.

  • user.selectedBadges.code (string) -> Código de la placa.

  • user.selectedBadges.name (string) -> Nombre de la placa.

  • user.selectedBadges.description (string) -> Descripción de la placa.

  • user.motto (string) -> Misión del usuario.

  • user.memberSince (string) -> (UTC time) Fecha de creación del personaje.

  • user.profileVisible  (bool) -> True si tiene el perfil visible.

  • friends (object) -> Datos de los amigos.

  • friends.name (string) -> Nombre del amigo.

  • friends.motto (string) -> Misión del amigo.

  • friends.uniqueId (string) -> Identificador del amigo.

  • friends.figureString (string) -> Avatar string image del amigo.

  • groups (object) -> Datos de los grupos.

  • groups.id (string) -> Identificador del grupo.

  • groups.name (string) -> Nombre del grupo.

  • groups.description (string) -> Descripción del grupo.

  • groups.type (string) -> Tipo del grupo (NORMAL | EXCLUSIVE)

  • groups.badgeCode (string) -> Código de la placa del grupo.

  • groups.roomId (string) -> Identificador de la sala del grupo.

  • groups.primaryColour (string) -> Color HEX primario del grupo.

  • groups.secondaryColour (string) -> Color HEX secundario del grupo.

  • groups.isAdmin (bool) -> True si es administrador del grupo.

  • rooms (object) -> Datos de las salas.

  • rooms.id (string) -> Identificador de la sala.

  • rooms.name (string) -> Nombre de la sala.

  • rooms.description (string) -> Descripción de la sala.

  • rooms.ownerUniqueId (string) -> Identificador del dueño de la sala.

  • badges (int) -> Placas del usuario.

  • badges.code (string) -> Código de la placa.

  • badges.name (string) -> Nombre de la placa.

  • badges.description (string) -> Descripción de la placa.





Otros endpoints:

[GET] https://www.habbo.com/api/public/users/{username.uniqueId}/badges
[GET] https://www.habbo.com/api/public/users/{username.uniqueId}/rooms
[GET] https://www.habbo.com/api/public/users/{username.uniqueId}/friends
[GET] https://www.habbo.com/api/public/users/{username.uniqueId}/groups

Request -> JSON

Nota de interés: Son creadas dos (2) cookies por cada petición.


Límites: Toda API tiene un límite de consultas cada cierto tiempo, desconozco por el momento el límite que esta posee.


Me tarde al rededor de 3 horas redactando esta documentación, la estaré actualizando a medida que vaya encontrando nuevas fuentes de datos.

Espero que les sea de utilidad, se que así será.
Un saludo.
nachoo1153
Mensajes: 9
Respetos: -
Estado: Offline
Publicado hace 10 años
Me parece interesante, aunque no se hacer nada de eso, ni explicándomelo, xd.
‹‹ Regresar
1
Reportar Tema