Autenticación app-only y Bearer Token de OAuth 2.0
X ofrece a las aplicaciones la capacidad de emitir solicitudes autenticadas en nombre de la propia aplicación, en lugar de en nombre de un usuario específico. La implementación de X se basa en el flujo Client Credentials Grant de la especificación de OAuth 2. La autenticación application-only no incluye ningún contexto de usuario y es una forma de autenticación en la que una aplicación realiza solicitudes a la API en su propio nombre. Este método es para desarrolladores que solo necesitan acceso de solo lectura a información pública. Puedes realizar la autenticación application-only usando las claves de consumer API de tu app o usando un App only Access Token (Bearer Token). Esto significa que las únicas solicitudes que puedes realizar a una X API no deben requerir un usuario autenticado. Con la autenticación application-only, puedes realizar acciones como:- Obtener timelines de usuarios
- Acceder a amigos y seguidores de cualquier cuenta
- Acceder a recursos de listas
- Buscar Tweets
- Publicar Tweets u otros recursos
- Buscar usuarios
- Usar cualquier endpoint geográfico
- Acceder a Mensajes Directos o credenciales de cuenta
- Obtener las direcciones de correo electrónico de los usuarios
Flujo de autenticación
Para usar este método, necesitas usar un App only Access Token (también conocido como Bearer Token). Puedes generar un App only Access Token (Bearer Token) pasando tu consumer key y secret a través del endpoint POST oauth2/token. El flujo de autenticación application-only sigue estos pasos:- Una aplicación codifica su consumer key y secret en un conjunto de credenciales especialmente codificadas.
- Una aplicación realiza una solicitud al endpoint POST oauth2/token para intercambiar estas credenciales por un App only Access Token.
- Al acceder a la REST API, la aplicación usa el App only Access Token para autenticarse.

Acerca de la autenticación application-only
Los tokens son contraseñas Ten en cuenta que la consumer key & secret y el propio App only Access Token (Bearer Token) otorgan acceso para realizar solicitudes en nombre de una aplicación. Estos valores deben considerarse tan sensibles como las contraseñas y no deben compartirse ni distribuirse a partes no confiables. SSL requerido Todas las solicitudes (tanto para obtener como para usar los tokens) deben usar endpoints HTTPS. Sigue las mejores prácticas detalladas en Conexión a la X API mediante TLS — los peers deben verificarse siempre. Sin contexto de usuario Al emitir solicitudes usando autenticación application-only, no existe el concepto de “usuario actual”. Por lo tanto, los endpoints como POST statuses/update no funcionarán con la autenticación application-only. Consulta usar OAuth para más información sobre cómo emitir solicitudes en nombre de un usuario. Límites de tasa Las aplicaciones tienen dos tipos de grupos de límites de tasa. Las solicitudes realizadas en nombre de usuarios con access tokens, también conocidas como user-context, se descuentan de un contexto de límite de tasa diferente al utilizado en la autenticación application-only. Por lo tanto, en otras palabras, las solicitudes realizadas en nombre de los usuarios no se descontarán de los límites de tasa disponibles a través de la autenticación app-only, y las solicitudes realizadas a través de app-only auth no se descontarán de los límites de tasa utilizados en la autenticación basada en usuario. Lee más sobre Límites de tasa de la API y revisa los límites.Emisión de solicitudes application-only
Paso 1: Codifica la consumer key y secret Los pasos para codificar la consumer key y secret de una aplicación en un conjunto de credenciales para obtener un Bearer Token son:- Codifica en URL la consumer key y consumer secret según RFC 1738. Ten en cuenta que, en el momento de escribir esto, esto no cambiará realmente la consumer key y secret, pero este paso debe realizarse igualmente por si el formato de esos valores cambia en el futuro.
- Concatena la consumer key codificada, un carácter de dos puntos ”:” y la consumer secret codificada en una sola cadena.
- Codifica en Base64 la cadena del paso anterior.
| Consumer key | xvz1evFS4wEEPTGEFPHBog |
| Consumer secret | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Consumer key codificada según RFC 1738 (no cambia) | xvz1evFS4wEEPTGEFPHBog |
| Consumer secret codificada según RFC 1738 (no cambia) | L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Credenciales de Bearer Token | xvz1evFS4wEEPTGEFPHBog:L8qq9PZyRg6ieKGEKhZolGC0vJWLw8iEJ88DRdyOg |
| Credenciales de Bearer Token codificadas en Base64 | :: eHZ6MWV2RlM0d0VFUFRHRUZQSEJvZzpMOHFxOVBaeVJnNmllS0dFS2hab2xHQzB2SldMdzhpRUo4OERSZHlPZw== |
- La solicitud debe ser una solicitud HTTP POST.
- La solicitud debe incluir un encabezado
Authorizationcon el valorBasic <valor codificado en base64 del paso 1>. - La solicitud debe incluir un encabezado
Content-Typecon el valorapplication/x-www-form-urlencoded;charset=UTF-8. - El cuerpo de la solicitud debe ser
grant_type=client_credentials.
token_type del objeto devuelto sea bearer. El valor asociado a la clave access_token es el App only Access Token (Bearer Token).
Ten en cuenta que solo un App only Access Token es válido para una aplicación a la vez. Emitir otra solicitud con las mismas credenciales a /oauth2/token devolverá el mismo token hasta que se invalide.
Paso 3: Autentica las solicitudes a la API con el App only Access Token (Bearer Token)
El App only Access Token (Bearer Token) puede usarse para emitir solicitudes a endpoints de la API que admiten autenticación application-only. Para usar el App Access Token, construye una solicitud HTTPS normal e incluye un encabezado Authorization con el valor Bearer <valor de bearer token en base64 del paso 2>. No se requiere firma.
Solicitud de ejemplo (el encabezado Authorization ha sido dividido en varias líneas):
Casos de error comunes
Esta sección describe algunos errores comunes involucrados en la negociación y el uso de Bearer Tokens. Ten en cuenta que no se cubren aquí todas las posibles respuestas de error: presta atención a los códigos de error y respuestas no manejados. Solicitudes no válidas para obtener o revocar un App only Access Token Los intentos de:- Obtener un App only Access Token (Bearer Token) con una solicitud no válida (por ejemplo, omitiendo
grant_type=client_credentials). - Obtener o revocar un App only Access Token (Bearer Token) con credenciales de app incorrectas o caducadas.
- Invalidar un App only Access Token (Bearer Token) incorrecto o revocado.
- Obtener un App only Access Token (Bearer Token) con demasiada frecuencia en un corto período de tiempo.
La solicitud a la API contiene un App only Access Token (Bearer Token) no válido
Usar un Access Token incorrecto o revocado para realizar solicitudes a la API dará como resultado:App only Access Token (Bearer Token) usado en un endpoint que no admite autenticación application-only
Solicitar un endpoint que requiere un contexto de usuario (comostatuses/home_timeline) con un App only Access Token (Bearer Token) producirá: