2011-05-06 19 views
5

Esencialmente el mismo problema que esta pregunta, pero en busca de una solución en Python. How to work around Twitter OAuth?Omitir Twitter OAuth

Idealmente, no quiero tener que pasar por el arcén de configurar una interfaz de usuario/inicio de sesión y back-end ya que el trabajo que estoy haciendo es para fines internos.

También me gustaría pasar por alto la parte en la que necesito redirigir al usuario a Twitter para obtener autorización.

Gracias

Respuesta

3

Usted querrá utilizar el flujo fuera de banda de Twitter. Esto se explica muy bien en esta respuesta

Twitter API - OOB Flow

+1

Idealmente, me gustaría que el proceso tenga una interacción nula que involucre al usuario. Este flujo aún requiere la entrada de un PIN si no me equivoco. – super9

+3

¿Cómo espera acceder a una cuenta sin que el usuario la autentique? – Acorn

+1

Quiero un flujo de autenticación unidireccional sin ninguna entrada del usuario. Nunca dije nada sobre no ser autenticado por el usuario. – super9

3

Así, leyendo entre líneas un poco, usted tiene una cuenta de Twitter y una contraseña, ya que esta es interna, por lo que no quiere ir con un proceso de autenticación que requiere un usuario para interactuar con ella?

La idea detrás de OAuth es que nunca descubres cuál es la contraseña del usuario; Estoy de acuerdo en que si estoy en lo cierto sobre lo que intentas hacer, no es lo correcto. El flujo OOB sugerido por JohnD tiene el mismo problema.

Si tiene una cuenta/contraseña, puede trabajar directamente con los envíos al sitio web, utilizando el formulario de inicio de sesión y el formulario de tweet. Lamentablemente, esto significa que no tiene acceso a la API (anularon la autenticación básica a través de la API el año pasado), dependiendo de lo que esté intentando hacer, puede o no ser un problema.

Editar:

Uso de OAuth y recordar el token. Nunca caduca, de acuerdo con los documentos de la API de Twitter, y dado que presumiblemente tiene un número limitado de cuentas que le interesan, puede pasar por los aros de OAuth una vez para cada cuenta y listo hasta que necesite otra cuenta. Incluso puede hacer todo el proceso programáticamente dado el nombre de usuario y la contraseña, suponiendo que no inserten un captcha allí en algún momento. Pero sospecho que tu mejor opción es usar OAuth y almacenar los tokens.

+1

Sí, eso es correcto. La autenticación básica habría funcionado perfectamente bien para mí, pero como dijiste, ha sido obsoleta. Los datos no autenticados que están expuestos en la API no tienen toda la información. Que yo necesito. – super9

+0

@Nai Creo que estás jodido, entonces. Puede usar los formularios web públicos, o puede usar algo como OAuth. Sin embargo, tenga en cuenta que solo tiene que pasar por el aro OAuth una vez por cuenta, ya que los tokens nunca caducan, por lo que puede almacenar en caché los tokens. Actualizaré mi respuesta para incluir eso. –

+0

Gracias por confirmar eso. lol – super9

0

Puede considerar mirar Mechanize. Automatiza la actividad del navegador.

Así que podría dar su nombre de usuario/contraseña a su secuencia de comandos. Luego, la secuencia de comandos debe pasar esas credenciales al http://twitter.com/#!/login.

convencionalmente, si inicia sesión manualmente desde esa página web, la respuesta será otra página según si las credenciales que utilizó eran correctas.

Lo mismo aquí: según si las credenciales son correctas, la respuesta es otra página.

Puede verificar si la respuesta es una página de "inicio de sesión fallido" o una página de "inicio de sesión aprobado", y hacer lo que debe hacer desde allí.

Esperanza esto ayuda

1

solo he encontrado que funciona this bash script, probado personalmente, solo cambia --ssl---sslv3.

Se basa en un método de autenticación simple utilizado en mobile.twitter.com, puede usar el mismo principio para manejarlo usando los módulos urllib2 y re.


De lo contrario se puede considerar que apoyarse en un sitio como http://www.supertweet.net/

SuperTweet.net proporciona un mecanismo seguro utilizar la autenticación básica con la API de Twitter en sus scripts y otras aplicaciones de Twitter. Simplemente Regístrese a través de Twitter para autorizar la API MyAuth Proxy SuperTweet.net Aplicación y luego asignar una contraseña de su elección (no su verdadero Twitter contraseña) que sus aplicaciones pueden uso con la API http://api.supertweet.net .

edición: Ahora veo este sitio fue citado en un artículo relacionado en una respuesta de How to work around Twitter OAuth?, si ya leer sobre ella ignore esta parte.

1

Si está utilizando una aplicación de escritorio o móvil, puede usar xAuth. Desde la perspectiva del usuario, es lo mismo que la autenticación básica para obtener las credenciales originales de OAuth, y no hay páginas externas. Tenga en cuenta que debe ser aprobado por el equipo de la API de Twitter para obtener acceso a xAuth.

Cuestiones relacionadas