2010-09-21 20 views
12

Encontré la gema gmail_xoauth, que hace la mayor parte de lo que necesito, pero también necesito generar los tokens oauth (consumer_key y consumer_secret) desde dentro de Rails3.¿Cómo me conecto al servidor IMAP de Gmail usando oauth en Rails3?

Estoy tratando de integrar la integración oauth de Gmail en mi sitio y, por lo tanto, no puedo usar el script de python al que hace referencia la gema mencionada. Me gustaría que mi sitio lleve al usuario a la página de autenticación y extraiga los tokens consumer_key/secret.

Soy nuevo en OAuth, así que tal vez haya algo obvio que me falta.

ACTUALIZACIÓN: He resuelto lo anterior, y he escrito una publicación de blog con los detalles (ya que es demasiado grande para caber aquí). http://blog.asif.in/blog/2012/03/03/google-oauth-and-rails/

+1

Para los cazarrecompensas: la respuesta a esta pregunta será proactiva, así que aceptaré un enlace a la publicación de tu blog, si está completa. Estoy bastante seguro de que cualquier respuesta correcta empleará una combinación del complemento @sheikh mentions y: https://github.com/pelle/oauth. – SooDesuNe

+0

Esto significa que la respuesta tendrá que abordar 1) obtener permiso de acceso del consumidor del proveedor 2) almacenar cualquier información apropiada para el usuario 3) hacer la solicitud del consumidor a gmail – SooDesuNe

+0

Una cosa más, un ejemplo de SMTP/IMAP (envío/recepción) sería inmensamente apreciado. – SooDesuNe

Respuesta

2

Es posible que desee comprobar hacia fuera OmniAuth. Es una gema que encapsula/abstrae una gran parte del trabajo de protocolo subyacente que se debe hacer para OAuth, así como otros protocolos de autenticación/autorización como OpenID y LDAP. No estoy muy familiarizado con la API de Google para enviar/recibir correos electrónicos, pero la autenticación es el primer paso.

La wiki de OmniAuth tiene un muy buen tutorial en su uso con OpenID y Google Apps, aunque puede que no sea exactamente lo que está buscando en IMAP. Es posible que deba escribir su propio proveedor para OmniAuth (un buen tutorial que describe que está disponible). Google también proporciona un reference site para autenticar/autorizar a través de IMAP y OAuth. La parte más relevante de eso para usted probablemente sea la página detailing the protocol.

Espero que ayude!

+0

Intenté usar OmniAuth pero no funcionó bien para mí. Logré hacerlo funcionar convirtiendo el código python de ejemplo de Google en Ruby y agregando los controladores apropiados. Como está bastante involucrado, escribiré una publicación en el blog pronto con los detalles. –

+1

¿Qué problema tenías con OmniAuth? –

Cuestiones relacionadas