开发者

How do I connect to Gmail's IMAP server using oauth in Rails3?

开发者 https://www.devze.com 2023-01-17 05:04 出处:网络
I found the gmail_xoauth gem, which does most of what I need, but I also need to generate the oauth tokens (consumer_key and consumer_secret) from inside Rails3.

I found the gmail_xoauth gem, which does most of what I need, but I also need to generate the oauth tokens (consumer_key and consumer_secret) from inside Rails3.

I am trying to integrate Gmail's oauth integration into my site and hence cannot use the python script that the above gem refers to. I would like my site to take the user to the authentication page and extract the consumer_key/secret tokens.

I am new to OAuth, so maybe there's something obvious that I am missing.

UPDATE: I solved the above, and have written a blog post w开发者_开发技巧ith the details (since its too big to fit here). http://blog.asif.in/blog/2012/03/03/google-oauth-and-rails/


You may want to check out OmniAuth. It's a gem that encapsulates/abstracts a lot of the underlying protocol work that must be done for OAuth, as well as other authentication/authorization protocols like OpenID and LDAP. I'm not well versed on Google's API for sending/receiving email, but authenticating is the first step.

The OmniAuth wiki has a very good tutorial on using it with OpenID and Google Apps, although this may not be quite what you're looking for when it comes to IMAP. You may need to write your own provider for OmniAuth (a good tutorial describing this is available). Google also provides a reference site for authenticating/authorizing via IMAP and OAuth. The most relevant part of that to you would most likely be the page detailing the protocol.

Hope that helps!


I'm not going to write the full code for you, but do you know PHP? You could have a look at the way this example works:

http://googlecodesamples.com/docs/php/Docs.php

...then make something similar in Ruby.

This is a Google Code Sample from the following site:

http://googlecodesamples.com/

0

精彩评论

暂无评论...
验证码 换一张
取 消