2010-09-21 2 views
12

Я нашел жемчуг gmail_xoauth, который делает большую часть того, что мне нужно, но мне также нужно сгенерировать токены oauth (consumer_key и consumer_secret) изнутри Rails3.Как подключиться к серверу IMAP Gmail с помощью oauth в Rails3?

Я пытаюсь интегрировать интеграцию Oauth Gmail на свой сайт и, следовательно, не могу использовать скрипт python, на который ссылается вышеупомянутый камень. Я хотел бы, чтобы мой сайт взял пользователя на страницу аутентификации и извлек токены user_key/secret.

Я новичок в OAuth, поэтому, возможно, есть что-то очевидное, что мне не хватает.

ОБНОВЛЕНИЕ: Я решил выше, и написал сообщение в блоге с подробностями (поскольку он слишком велик, чтобы соответствовать здесь). http://blog.asif.in/blog/2012/03/03/google-oauth-and-rails/

+1

Для охотников за головами: ответ на этот вопрос, скорее всего, будет довольно привлекательным, поэтому я приму ссылку на ваш пост в блоге, если он будет завершен. Я почти уверен, что в правильном ответе будет использована комбинация упоминаний плагина @sheikh и https://github.com/pelle/oauth. – SooDesuNe

+0

Это означает, что ответ должен будет адресовать: 1) получение прав доступа потребителя от провайдера; 2) сохранение любой необходимой информации для пользователя; 3) внесение потребительского запроса в gmail. – SooDesuNe

+0

. Еще одна вещь: пример SMTP/IMAP (отправка/получение) было бы очень оценено. – SooDesuNe

ответ

2

Вы можете проверить OmniAuth. Это драгоценный камень, который инкапсулирует/абстрагирует большую часть работы протокола, которая должна быть выполнена для OAuth, а также другие протоколы аутентификации/авторизации, такие как OpenID и LDAP. Я не очень хорошо разбираюсь в API Google для отправки/получения электронной почты, но аутентификация - это первый шаг.

OmniAuth wiki имеет очень хорошее значение tutorial, используя его с OpenID и Google Apps, хотя это может быть не совсем то, что вы ищете, когда дело доходит до IMAP. Возможно, вам понадобится написать собственный провайдер для OmniAuth (хороший tutorial, описывающий это доступно). Google также предоставляет reference site для аутентификации/авторизации через IMAP и OAuth. Наиболее важной частью этого вам, скорее всего, будет страница detailing the protocol.

Надеюсь, что это поможет!

+0

Я пробовал использовать OmniAuth, но это не сработало для меня. Мне удалось заставить его работать, преобразов примерный код python Google в Ruby и добавив соответствующие контроллеры. Поскольку это довольно активно, я скоро напишу сообщение в блоге с подробностями. –

+1

Какой у вас вопрос с OmniAuth? –