Autorización de una solicitud
El propósito de este documento es mostrarte cómo modificar las solicitudes HTTP con el fin de enviar solicitudes autorizadas a la X API. Todas las APIs de X se basan en el protocolo HTTP. Esto significa que cualquier software que escribas que use las APIs de X envía una serie de mensajes estructurados a los servidores de X. Por ejemplo, una solicitud para publicar el texto “Hello Ladies + Gentlemen, a signed OAuth request!” como un Tweet se verá algo así:- Qué aplicación está haciendo la solicitud
- En nombre de qué usuario se está publicando la solicitud
- Si el usuario ha otorgado a la aplicación autorización para publicar en su nombre
- Si la solicitud ha sido manipulada por un tercero durante el tránsito
Nonce
El parámetro oauth_nonce es un token único que tu aplicación debe generar para cada solicitud única. X utilizará este valor para determinar si una solicitud se ha enviado varias veces. El valor para esta solicitud se generó codificando en base64 32 bytes de datos aleatorios y eliminando todos los caracteres que no fueran palabras, pero cualquier enfoque que produzca una cadena alfanumérica relativamente aleatoria debería estar bien aquí.
Signature
El parámetro oauth_signature contiene un valor que se genera ejecutando todos los demás parámetros de la solicitud y dos valores secretos a través de un algoritmo de firma. El propósito de la firma es que X pueda verificar que la solicitud no ha sido modificada durante el tránsito, verificar la aplicación que envía la solicitud y verificar que la aplicación tiene autorización para interactuar con la cuenta del usuario.
El proceso para calcular la oauth_signature para esta solicitud se describe en Creación de una firma.
Signature method
El oauth_signature_method utilizado por X es HMAC-SHA1. Este valor debe usarse para cualquier solicitud autorizada enviada a la API de X.
Timestamp
El parámetro oauth_timestamp indica cuándo se creó la solicitud. Este valor debe ser el número de segundos desde el epoch Unix en el momento en que se genera la solicitud, y debería ser fácil de generar en la mayoría de los lenguajes de programación. X rechazará las solicitudes creadas demasiado tiempo en el pasado, por lo que es importante mantener el reloj del ordenador que genera las solicitudes sincronizado con NTP.
Token
El parámetro oauth_token normalmente representa el permiso de un usuario para compartir el acceso a su cuenta con tu aplicación. Hay algunas solicitudes de autenticación en las que este valor no se pasa o es una forma diferente de token, pero se cubren en detalle en Obtención de access tokens. Para la mayoría de las solicitudes de propósito general, usarás lo que se denomina un access token.
Puedes generar un access token válido para tu cuenta en la página de configuración de tu X app en la Developer Console.
Version
El parámetro oauth_version siempre debe ser 1.0 para cualquier solicitud enviada a la X API.
Construyendo la cadena del encabezado
Para construir la cadena del encabezado, imagina escribir a una cadena llamada DST.- Añade la cadena “OAuth ” (incluyendo el espacio al final) a DST.
- Para cada par clave/valor de los 7 parámetros listados anteriormente:
- Codifica por porcentaje la clave y añádela a DST.
- Añade el carácter igual ’=’ a DST.
- Añade una comilla doble ’”’ a DST.
- Codifica por porcentaje el valor y añádelo a DST.
- Añade una comilla doble ’”’ a DST.
- Si quedan pares clave/valor, añade una coma ’,’ y un espacio ’ ’ a DST.