Creación de una firma
Esta página explica cómo generar una firma HMAC-SHA1 de OAuth 1.0a para una solicitud HTTP. Esta firma será adecuada para pasar a la X API como parte de una solicitud autorizada, como se describe en autorización de una solicitud. La solicitud utilizada para demostrar la firma es un POST a https://api.x.com/1.1/statuses/update.json. La solicitud sin procesar se ve así:
La URL base es la URL a la que se dirige la solicitud, menos cualquier query string o parámetros hash. Es importante utilizar el protocolo correcto aquí, así que asegúrate de que la parte “https://” de la URL coincida con la solicitud real enviada a la API.
Recopilación de parámetros
A continuación, reúne todos los parámetros incluidos en la solicitud. Existen dos ubicaciones para estos parámetros adicionales: la URL (como parte del query string) y el cuerpo de la solicitud. La solicitud de ejemplo incluye un único parámetro en ambas ubicaciones:
Estos valores deben codificarse en una única cadena, que se usará más adelante. El proceso para construir la cadena es muy específico:
- Codifica por porcentaje cada clave y valor que se vaya a firmar.
- Ordena la lista de parámetros alfabéticamente [1] por clave codificada [2].
- Para cada par clave/valor:
- Añade la clave codificada a la cadena de salida.
- Añade el carácter ’=’ a la cadena de salida.
- Añade el valor codificado a la cadena de salida.
- Si quedan más pares clave/valor, añade un carácter ’&’ a la cadena de salida.
Creación de la signature base string
Los tres valores recopilados hasta ahora deben unirse para formar una sola cadena, a partir de la cual se generará la firma. Esto se llama la signature base string en la especificación de OAuth. Para codificar el método HTTP, la URL base y la cadena de parámetros en una sola cadena:- Convierte el método HTTP a mayúsculas y establece la cadena de salida igual a este valor.
- Añade el carácter ’&’ a la cadena de salida.
- Codifica por porcentaje la URL y añádela a la cadena de salida.
- Añade el carácter ’&’ a la cadena de salida.
- Codifica por porcentaje la cadena de parámetros y añádela a la cadena de salida.
Obtención de una signing key
Las últimas piezas de datos a recopilar son secretos que identifican la X app que realiza la solicitud y el usuario en cuyo nombre se realiza la solicitud. Es muy importante tener en cuenta que estos valores son increíblemente sensibles y nunca deben compartirse con nadie. El valor que identifica tu app ante X se llama consumer secret y se puede encontrar en la Developer Console viendo la página de detalles de la app. Este será el mismo para cada solicitud que envíe tu X app.
El valor que identifica la cuenta en cuyo nombre actúa tu aplicación se llama OAuth token secret. Este valor puede obtenerse de varias maneras, todas descritas en obtención de access tokens.
Una vez más, es muy importante mantener estos valores privados de tu aplicación. Si crees que tus valores han quedado comprometidos, regenera tus tokens (los tokens en esta página se han marcado como no válidos para solicitudes reales).
Ambos valores deben combinarse para formar una signing key que se usará para generar la firma. La signing key es simplemente el token secret codificado por porcentaje:
Ten en cuenta que hay algunos flujos, como cuando se obtiene un request token, donde el token secret aún no se conoce. En este caso, la signing key debe consistir en el consumer secret codificado por porcentaje seguido de un carácter ampersand ’&’.