with new clave app twitter twitter-oauth

new - API de Twitter: razones para el "token no válido o vencido"



twitter oauth2 (9)

¿Has confirmado que los tokens funcionaron al mismo tiempo? En un sistema OAuth en el que trabajé, había un error en la forma en que se almacenaban y recuperaban los tokens de forma segura, lo que causaba que un pequeño porcentaje de ellos se corrompiera. Si puede confirmar que los tokens funcionaron en el pasado, ese es un buen primer paso.

Cuando recuperas los tokens del almacenamiento, ¿permanecen sin cambios? ¿Es posible que se corrompan con la forma en que los maneja?

Ponga un poco de registro en su lugar para realizar un seguimiento de cuándo tokens funcionan y fallan. ¿Alguna vez un token vuelve a funcionar después de que ha fallado una vez? Si no usa un token durante 30 días, ¿caduca? Con un registro detallado, puede comenzar a identificar los tokens caducados y buscar patrones en uso para señalar lo que podría hacer que expiren.

Asegúrate de explorar otras posibilidades también. ¿Cómo revocan los tokens en Twitter? ¿Es fácil accidentalmente hacer eso? Para los usuarios con tokens fallidos, ¿tienen otras aplicaciones autorizadas que también han dejado de funcionar?

¿Cuáles son los posibles motivos que pueden hacer que el token caduque (además de tener al usuario desautorizando la aplicación)?

Mi problema es que tengo una aplicación con varios miles de usuarios, todas las comunicaciones API funcionan perfectamente, pero para algunos usuarios invalid or expired token error de invalid or expired token , aunque mi inicial fue que son usuarios que cancelaron la autenticación de la aplicación pero yo He contactado a algunos de ellos y no han revocado el acceso.

¿Alguna idea de qué otros problemas pueden causar ese error?


Además de los comentarios que todos los demás han hecho, a veces la API api devolverá un error de "token inválido" cuando el token no sea el problema. Lo he notado más cuando he creado una cadena de solicitud que no se analiza correctamente. Por ejemplo, una vez que recibí ese error cuando estaba pasando screen_name que tenía símbolos que no eran codificables por URI. También lo obtuve cuando pasé en valores vacíos como este (donde el cursor está vacío):

https://api.twitter.com/1/followers.json?cursor=&screen_name=whatevah

¿Podría darnos los detalles de las llamadas que devuelven este error?


Compruebe la integridad de un token de acceso en cualquier momento llamando a la cuenta GET / verify_credentials mientras usa ese token de acceso.

Es mencionado y por investigación llegué a saber que:

Su token de acceso no será válido si un usuario rechaza explícitamente su aplicación desde su configuración o si un administrador de Twitter suspende su aplicación. Si su aplicación se suspende, aparecerá una nota en su página de solicitud que indique que ha sido suspendida.

¿Por qué mi token de acceso de Twitter no es válido / ha caducado?

Verifique esta publicación: tokens de acceso no válidos / caducados .

Hay una publicación en los grupos de google que dice:

No tienes una segunda oportunidad, y esto es por diseño. Las solicitudes de OAuth tienen una firma única; una vez que se envía una solicitud en particular, no se puede enviar nuevamente. Si ingresan al pin correctamente, todo está bien, obtienes un token de acceso. Si entran incorrectamente en el pin, obtienes 401 no autorizado, que es lo que se espera. Pero si luego vuelven a intentar ingresar al pin, incluso el pin correcto aparece como no autorizado.

Verifique este link para la referencia anterior.

Algunas sugerencias de un empleado de Twitter para el mismo problema:

Supongo que hay dos cosas que sugeriría en este momento: 1.) Vaya a la configuración de su aplicación y use la pestaña "Restablecer claves" para restablecer su clave de consumidor y su secreto, luego actualice esos valores en la aplicación y verifique que todavía vea el mismo comportamiento 2.) Intenta pasar oauth_callback en tu llamada request_token. Honestamente, no creo que esto vaya a hacer la diferencia, pero quiero intentar ser lo más riguroso posible aquí.

También revise esta discussion diciendo:

Debe utilizar oauth_token y oauth_token_secret devueltos por la llamada a oauth / access_token en lugar de la que se encuentra en la configuración de su aplicación en dev.twitter.com


Es posible que estos usuarios no hayan revocado el acceso. Pero en mi experiencia, un token de acceso también puede expirar después de que el usuario (en casos de prueba: yo) haya cambiado su contraseña.

Cuando el usuario hace eso, ya no puede usar la API REST de la API de transmisión en el alcance de ese usuario. Por favor, adapte su aplicación para manejar esa situación. Revoque la sesión del usuario, de modo que cuando regrese a su aplicación, pueda ser redirigido a Twitter nuevamente para comenzar un nuevo proceso de token de acceso OAuth. O envíele un correo electrónico para pedir amablemente que se vuelva a conectar. Vimeo / Windows / ... son algunas de las personas que manejan tokens vencidos con correos electrónicos.

¡Que te diviertas!


Estaba recibiendo el mismo error, luego cambié (access_token) to (access_token_key) y funcionó para mí.

Espero que ayude a alguien.


Primero que nada buena pregunta Ran.

Quiero preguntarte si has pasado por desarrolladores de Twitter.

A veces se vuelve ambiguo qué token utilizar, ya que Twitter proporciona dos pares de tokens y la biblioteca. Uno de ellos es una clave secreta.

Debes seleccionar el token que comienza con tu ID de Twitter seguido de un guion.

Ahora su pregunta es que este error ocurre con algunos de los usuarios de ustedes. Así que aquí está la respuesta que una aplicación encuentra ambigua para elegir el token.

Aunque puede que no tenga toda la razón, pero le recomiendo que pruebe esta solución al menos una vez.


Puede ser que esto sea útil para usted. Enfrenté el mismo problema.

Encuentre el siguiente fragmento de fragmento de código

$code = $tmhOAuth->user_request(array( ''method'' => ''POST'', ''url'' => $tmhOAuth->url(''oauth/access_token'', ''''), ''params'' => array( ''oauth_verifier'' => trim($params[''oauth_verifier'']), ) )); if ($code == 200) { $oauth_creds = $tmhOAuth->extract_params($tmhOAuth->response[''response'']); // echo ''<pre>'';print_r($oauth_creds);exit; $tmhOAuth->reconfigure(array_merge($tmhOAuth->config, array( ''token'' => $oauth_creds[''oauth_token''], ''secret'' => $oauth_creds[''oauth_token_secret''], ))); $code = $tmhOAuth->user_request(array( ''url'' => $tmhOAuth->url(''1.1/account/verify_credentials'') )); }


si su token de acceso = 738629462149844993-FcWhjfcucCLGEosyGGQ38qI ****** iC, entonces no olvide mencionar el guión (-) seguido de su USERID.


La respuesta de mi Dios es correcta, pero compartiré mi respuesta de otra pregunta explicando cómo podría ser el reloj de su computadora:

Si su flujo de OAuth estuvo funcionando un día y luego falló, consulte el reloj de su computadora. Estaba ejecutando un cuadro de Vagrant que de alguna manera tenía su hora establecida el día anterior, lo que provocó que la API de Twitter devolviera {"código": 89, "mensaje": "token no válido o vencido".}. Esto también puede aparecer como 401 marca de tiempo fuera de límites. Puede usar este comando para actualizar su reloj en Ubuntu:

sudo ntpdate time.nist.gov

Método alternativo si ntpdate no está disponible en su sistema:

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d'' '' -f5-8)Z"