Saltar al contenido principal

OAuth 1.0a

PropósitoMétodo
Paso 1 del flujo OAuth de 3 fases y de Iniciar sesión con X
Permite a una aplicación cliente obtener un OAuth Request Token para solicitar la autorización del usuario.
POST oauth/request_token
Paso 2 del flujo OAuth de 3 fases y de Iniciar sesión con X
Permite a una aplicación cliente usar un OAuth Request Token para solicitar la autorización del usuario.
GET oauth/authenticate
Paso 2 del flujo OAuth de 3 fases y de Iniciar sesión con X
Permite a una aplicación cliente usar un OAuth Request Token para solicitar la autorización del usuario.
GET oauth/authorize
Paso 3 del flujo OAuth de 3 fases y de Iniciar sesión con X
Permite a una aplicación cliente intercambiar el OAuth Request Token por un OAuth Access Token.
POST oauth/access_token
Permite que una aplicación registrada revoque un OAuth Access Token emitido.POST oauth/invalidate_token

Bearer Token de OAuth 2.0

PropósitoMétodo
Permite que una App registrada genere un Bearer Token de OAuth 2 de solo aplicación (app-only), que puede utilizarse para realizar solicitudes a la API en nombre de la App, sin contexto de usuario.POST oauth2/token
Permite que una App registrada revoque un Bearer Token de OAuth 2 de solo aplicación (app-only) previamente emitido.POST oauth2/invalidate_token

POST oauth/request_token

Permite que una aplicación Consumer obtenga un OAuth Request Token para solicitar la autorización del usuario. Este método cumple con la Sección 6.1 del flujo de autenticación OAuth 1.0. Requerimos que utilices HTTPS para todos los pasos de autorización OAuth. Nota de uso: Solo se aceptan caracteres ASCII para oauth_nonce Resource URL https://api.x.com/oauth/request_token Resource Information
Response formatsJSON
Requires authentication?No
Rate limited?
Parameters
NameRequiredDescriptionExample
oauth_callbackrequiredPara cumplir con OAuth 1.0a este parámetro es obligatorio. El valor que especifiques aquí se utilizará como la URL a la que se redirige a un usuario si aprueba el acceso de tu aplicación a su cuenta. Establécelo en oob para el modo PIN fuera de banda. Esta también es la forma en que especificas URLs de callback personalizadas para usar en aplicaciones de escritorio o móviles. Envía siempre un oauth_callback en este paso, independientemente de que exista un callback preregistrado.

Requerimos que cualquier URL de callback utilizada con este endpoint esté configurada en la configuración de la App en developer.x.com*
http://themattharris.local/auth.php twitterclient://callback
x_auth_access_typeoptionalSobrescribe el nivel de acceso que una aplicación solicita a la cuenta de un usuario. Los valores admitidos son read o write. Este parámetro está pensado para permitir que un desarrollador registre una aplicación de lectura/escritura pero también solicite acceso de solo lectura cuando sea apropiado.
Obtén más información sobre cómo aprobar tus URLs de callback en esta página. Ten en cuenta - Puedes ver y editar tus X apps existentes a través del X app dashboard si has iniciado sesión en tu cuenta de X en developer.x.com. Example request Request URL: POST https://api.x.com/oauth/request_token Request POST Body: N/A Authorization Header: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0" Response: oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik&oauth_token_secret=Kd75W4OQfb2oJTV0vzGzeXftVAwgMnEK9MumzYcM&oauth_callback_confirmed=true

GET oauth/authorize

Permite que una aplicación cliente use un OAuth Request Token para solicitar la autorización del usuario. Este método cumple con la Sección 6.2 del flujo de autenticación OAuth 1.0. Las aplicaciones de escritorio deben usar este método (y no pueden usar GET oauth / authenticate). Nota de uso: Un oauth_callback nunca se envía a este método; en su lugar, proporciónalo a POST oauth / request_token. URL del recurso https://api.x.com/oauth/authorize Información del recurso
Formatos de respuestaJSON
¿Requiere autenticación?
¿Tiene límite de frecuencia?
Parámetros
NombreObligatorioDescripciónValor predeterminadoEjemplo
force_loginopcionalObliga al usuario a introducir sus credenciales para garantizar que se autoriza la cuenta de usuario correcta.
screen_nameopcionalRellena previamente el campo de nombre de usuario en la pantalla de inicio de sesión de OAuth con el valor proporcionado.
Ejemplo de solicitud Envía al usuario al paso oauth/authorize en un navegador web, incluyendo el parámetro oauth_token: https://api.x.com/oauth/authorize?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

GET oauth/authenticate

Permite que una aplicación Consumer use un request_token de OAuth para solicitar la autorización del usuario. Este método reemplaza la Sección 6.2 del flujo de autenticación OAuth 1.0 para aplicaciones que utilizan el flujo de autenticación con callback. El método usará al usuario que haya iniciado sesión actualmente como la cuenta para la autorización de acceso, a menos que el parámetro force_login se establezca en true. Este método difiere de GET oauth / authorize en que, si el usuario ya ha concedido permisos a la aplicación, la redirección se producirá sin que el usuario tenga que volver a aprobar la aplicación. Para lograr este comportamiento, debes habilitar la opción Use Sign in with X en el registro de tu aplicación. Resource URL https://api.x.com/oauth/authenticate Resource Information
Response formatsJSON
Requires authentication?Yes
Rate limited?Yes
Parameters
NameRequiredDescriptionDefault ValueExample
force_loginoptionalObliga al usuario a introducir sus credenciales para garantizar que se autoriza la cuenta de usuario correcta.true
screen_nameoptionalRellena previamente el campo de nombre de usuario de la pantalla de inicio de sesión de OAuth con el valor proporcionado.
Example request Envía al usuario al paso oauth/authenticate en un navegador web, incluyendo un parámetro oauth_token: https://api.x.com/oauth/authenticate?oauth_token=Z6eEdO8MOmk394WozF5oKyuAv855l4Mlqo7hhlSLik

POST oauth/access_token

Permite que una aplicación cliente intercambie el OAuth Request Token por un OAuth Access Token. Este método cumple con la Sección 6.3 del flujo de autenticación OAuth 1.0. Resource URL https://api.x.com/oauth/access_token Resource Information
Formatos de respuestaJSON
¿Requiere autenticación?
¿Tiene limitación de frecuencia?
Parameters
NombreObligatorioDescripciónValor predeterminadoEjemplo
oauth_tokenobligatorioEl oauth_token aquí debe ser el mismo oauth_token devuelto en el paso de request_token.
oauth_verifierobligatorioSi se usa el flujo web de OAuth, establezca este parámetro con el valor de oauth_verifier devuelto en la URL de callback. Si está usando OAuth fuera de banda, establezca este valor con el código PIN. Para cumplir con OAuth 1.0a este parámetro es obligatorio. OAuth 1.0a se aplica de forma estricta y las aplicaciones que no usen oauth_verifier no podrán completar el flujo de OAuth.
Example request POST https://api.x.com/oauth/access_token?oauth_token=qLBVyoAAAAAAx72QAAATZxQWU6P&oauth_verifier=ghLM8lYmAxDbaqL912RZSRjCCEXKDIzx Para flujo basado en PIN: POST https://api.x.com/oauth/access_token?oauth_token=9Npq8AAAAAAAx72QBRABZ4DAfY9&oauth_verifier=4868795 Example response oauth_token=6253282-eWudHldSbIaelX7swmsiHImEL4KinwaGloHANdrY&oauth_token_secret=2EEfA6BG5ly3sR3XjE0IBSnlQu4ZrUzPiYTmrkVU&user_id=6253282&screen_name=xapi

POST oauth/invalidate_token

Permite a una aplicación registrada revocar un access_token OAuth emitido presentando sus credenciales de cliente. Una vez que un access_token se ha invalidado, los nuevos intentos de creación generarán un Access Token diferente y el uso del token invalidado ya no estará permitido. Resource URL https://api.x.com/1.1/oauth/invalidate_token Resource Information
Response formatsJSON
Requires authentication?Sí: contexto de usuario con los access tokens que quieras invalidar
Rate limited?
Example request
        curl --request POST
          --url 'https://api.x.com/1.1/oauth/invalidate_token.json'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
Respuesta de ejemplo
        HTTP/1.1 200 OK
        Content-Type: application/json; charset=utf-8
        Content-Length: 127
        ...

        {"access_token":"ACCESS_TOKEN"}
Ejemplo de respuesta de error después de invalidar el token
        HTTP/1.1 401 Authorization Required
        ...

        {"errors": [{
          "code": 89,
          "message": "Invalid or expired token."}
        ]}

POST oauth2/token

Permite que una aplicación registrada obtenga un Bearer Token de OAuth 2, que se puede usar para realizar solicitudes a la API en nombre de la propia aplicación, sin un contexto de usuario. Esto se denomina autenticación solo de la aplicación. Un Bearer Token se puede invalidar usando oauth2/invalidate_token. Una vez que se haya invalidado un Bearer Token, los nuevos intentos de creación generarán un Bearer Token diferente y el uso del token anterior ya no estará permitido. Solo puede existir un Bearer Token activo para una aplicación, y las solicitudes repetidas a este método devolverán el mismo token ya existente hasta que se haya invalidado. Las respuestas satisfactorias incluyen una estructura JSON que describe el Bearer Token otorgado. Los tokens recibidos mediante este método deben almacenarse en caché. Si se intenta con demasiada frecuencia, las solicitudes se rechazarán con un HTTP 403 con el código de error 99. URL del recurso https://api.x.com/oauth2/token Información del recurso
Formatos de respuestaJSON
¿Requiere autenticación?Sí: autenticación básica con tu API key como nombre de usuario y el secreto de tu API key como contraseña
¿Tiene límite de frecuencia?
Parámetros
NameRequiredDescriptionDefault ValueExample
grant_typerequiredEspecifica el tipo de grant que solicita la aplicación. En este momento, solo se permite client_credentials. Consulta autenticación solo de la aplicación para obtener más información.client_credentials
Ejemplo de solicitud
    POST /oauth2/token HTTP/1.1
    Host: api.x.com
    User-Agent: My X App v1.0.23
    Authorization: Basic eHZ6MWV2R ... o4OERSZHlPZw==
    Content-Type: application/x-www-form-urlencoded;charset=UTF-8
    Content-Length: 29
    Accept-Encoding: gzip

    grant_type=client_credentials
Ejemplo de respuesta:
    HTTP/1.1 200 OK
    Status: 200 OK
    Content-Type: application/json; charset=utf-8
    ...
    Content-Encoding: gzip
    Content-Length: 140

    {"token_type":"bearer","access_token":"AAAA%2FAAA%3DAAAAAAAA"}

POST oauth2/invalidate_token

Permite que una aplicación registrada revoque un Bearer Token de OAuth 2.0 emitido al presentar sus credenciales de cliente. Una vez que se haya invalidado un Bearer Token, los nuevos intentos de creación generarán un Bearer Token diferente y el uso del token invalidado ya no estará permitido. Las respuestas satisfactorias incluyen una estructura JSON que describe el Bearer Token revocado. Resource URL https://api.x.com/oauth2/invalidate_token Resource Information
Response formatsJSON
Requires authentication?Yes - OAuth 1.0a con las consumer API keys de la aplicación y el access token y access token secret del propietario de la aplicación
Rate limited?Yes
Parameters
NameRequiredDescription
access_tokenrequiredEl valor del Bearer Token que quieres invalidar
Example request
        curl --request POST
          --url 'https://api.x.com/oauth2/invalidate_token?access_token=AAAA%2FAAA%3DAAAAAAAA'
          --header 'authorization: OAuth oauth_consumer_key="CLIENT_KEY",
         oauth_nonce="AUTO_GENERATED_NONCE", oauth_signature="AUTO_GENERATED_SIGNATURE",
         oauth_signature_method="HMAC-SHA1", oauth_timestamp="AUTO_GENERATED_TIMESTAMP",
         oauth_token="ACCESS_TOKEN", oauth_version="1.0"'
Respuesta de ejemplo
         Status: 200 OK
         Content-Type: application/json; charset=utf-8
         Content-Length: 135
         ...
       {
        "access_token": "AAAA%2FAAA%3DAAAAAAAA"
        }