Как мне подключиться к IMAP-серверу Gmail, используя oauth в Rails3? - PullRequest
12 голосов
/ 21 сентября 2010

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

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

Я новичок в OAuth, так что, может быть, есть что-то очевидное, чего мне не хватает.

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

Ответы [ 2 ]

2 голосов
/ 06 января 2011

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

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

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

0 голосов
/ 30 ноября 2010

Я не собираюсь писать полный код для вас, но вы знаете PHP? Вы можете посмотреть, как работает этот пример:

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

... тогда сделайте что-то похожее в Ruby.

Это образец кода Google со следующего сайта:

http://googlecodesamples.com/

...