Ha ocurrido un error al intentar activar las notificaciones. Por favor, recarga la página.
Recibir notificaciones
¿Deseas recibir notificaciones de BitBook Lite?
Descarga la aplicación
Descarga la aplicación móvil de BitBook Lite para obtener una mejor experiencia en tu dispositivo.
Es necesario permitir algunas cookies para usar este sitio web
Las cookies de tipo Necesarias y Marketing son obligatorias para poder usar esta web.
Hola, mundo
Mensaje largo...
Haz click en la pantalla para cerrar
Aquí debería haber un mensaje...
Aquí debería haber un mensaje...
Guardar y cerrar
Normal
Claro
Noche
Noche clara
Sepia
Documentación para desarrolladores
Un Time Access Token (o TAT por sus siglas) es una credencial de acceso a la API de BitBook Lite que algunos métodos requieren para acceder a ellos.
El Time Access Token es un token hash basado en tiempo que se genera con la Time Access Token Password (o TATP por sus siglas) y cambia cada 30 segundos.
Es una medida adicional de seguridad para métodos sensibles de la API de BitBook Lite.
Para los métodos que requieren el envío de un TAT, deberás generar tu TAT actual con tu TATP que encontrarás en la sección de credenciales API de tu cuenta.
A continuación verás el procedimiento para generar un TAT con tu TATP.
Debes enviar tu TAT actual en el campo "api_credentials_tat" por el método POST de la consulta.
Pseudocódigo - Generar el TAT actual
interval = 30
password = '000000-wWEjGo-000000-drVbAf-000000-RLmtWV'
curr_time = getUnixTimeInSeconds()
multiplier = round(curr_time / interval)
mult_time = multiplier * interval
decoded_tat = password + '+' + mult_time
current_tat = sha256(decoded_tat)
PHP - Clase principal
class TimeAccessToken {
// Time Access Token (TAT)
public $interval = 30;
public $password;
function __construct($interval, $password){
if ($interval > 0 AND !empty($password)) {
$this->interval = $interval;
$this->password = $password;
return true;
} else {
throw new Exception('TimeAccessToken ERROR: $interval must be higher than zero and $password must be not empty.');
return false;
}
}
public function getToken($regression=0){
$curr_time = time();
$multiplier = round($curr_time / $this->interval);
$mult_time = $multiplier * $this->interval;
$mult_time = $mult_time - ($regression * $this->interval);
$decoded_tat = $this->password . '+' . $mult_time;
$hash = hash('sha256', $decoded_tat);
return $hash;
}
public function verifyToken($token, $allowed_regressions=0){
$result = false;
for ($i=0; $i <= $allowed_regressions; $i++) {
$iToken = $this->getToken($i);
if ($iToken === $token) {
$result = true;
continue;
}
}
return $result;
}
}
PHP - Generar el TAT actual
$interval = 30;
$password = '000000-wWEjGo-000000-drVbAf-000000-RLmtWV';
$TATClass = new TimeAccessToken($interval, $password);
$current_tat = $TATClass->getToken();
JavaScript - Generar el TAT actual
async function generateTAT(interval, password) {
var curr_time = Math.floor(Date.now() / 1000);
var multiplier = Math.round(curr_time / interval);
var mult_time = multiplier * interval;
var decoded_tat = password + '+' + mult_time;
const encoder = new TextEncoder();
const data = encoder.encode(decoded_tat);
const hashBuffer = await crypto.subtle.digest('SHA-256', data);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hashHex = hashArray.map(byte => byte.toString(16).padStart(2, '0')).join('');
return hashHex;
}
var interval = 30;
var password = '000000-wWEjGo-000000-drVbAf-000000-RLmtWV';
var current_tat = await generateTAT(interval, password);