2010-09-21 10 views
12

Ich fand die gmail_xoauth Edelstein, die meisten von dem, was ich brauche, aber ich muss auch die oauth Tokens (consumer_key und consumer_secret) aus Rails3 generieren.Wie stelle ich eine Verbindung zum IMAP-Server von Google Mail mithilfe von OAuth in Rails3 her?

Ich versuche, die Oauth-Integration von Gmail in meine Site zu integrieren und kann daher das Python-Skript nicht verwenden, auf das sich das obige Juwel bezieht. Ich möchte, dass meine Site den Benutzer zur Authentifizierungsseite führt und die consumer_key/secret-Token extrahiert.

Ich bin neu in OAuth, also gibt es etwas Offensichtliches, das ich vermisse.

UPDATE: Ich löste das oben genannte, und habe einen Blogpost mit den Details geschrieben (da es zu groß ist, um hier zu passen). http://blog.asif.in/blog/2012/03/03/google-oauth-and-rails/

+1

Für die Kopfgeldjäger: die Antwort auf diese Frage wird wahrscheinlich ziemlich beteiligt sein, so werde ich einen Link zu Ihrem Blog-Eintrag akzeptieren, wenn es abgeschlossen ist. Ich bin mir ziemlich sicher, dass jede richtige Antwort eine Kombination aus @sheikh-Erwähnungen und https://github.com/pelle/oauth verwenden wird. – SooDesuNe

+0

Dies bedeutet, dass die Antwort Adresse 1) erhalten Verbraucher Zugriffserlaubnis vom Anbieter 2) Speichern von geeigneten Informationen für den Benutzer 3) die Verbraucher Anfrage an gmail – SooDesuNe

+0

Eine weitere Sache, ein SMTP/IMAP (Senden/Empfangen) Beispiel würde sehr geschätzt werden. – SooDesuNe

Antwort

2

Sie möchten OmniAuth überprüfen. Es ist ein Juwel, das eine Menge der zugrunde liegenden Protokollarbeit, die für OAuth getan werden muss, sowie andere Authentifizierungs-/Autorisierungsprotokolle wie OpenID und LDAP einkapselt/abstrahiert. Ich bin nicht sehr versiert auf Googles API zum Senden/Empfangen von E-Mails, aber die Authentifizierung ist der erste Schritt.

Das OmniAuth-Wiki hat eine sehr gute tutorial für die Verwendung mit OpenID und Google Apps, obwohl dies nicht ganz das ist, was Sie suchen, wenn es um IMAP geht. Möglicherweise müssen Sie Ihren eigenen Provider für OmniAuth schreiben (eine gute tutorial, die dies beschreibt, ist verfügbar). Google stellt auch eine reference site zur Authentifizierung/Autorisierung über IMAP und OAuth zur Verfügung. Der relevanteste Teil davon für Sie wäre höchstwahrscheinlich die Seite detailing the protocol.

Hoffe, dass hilft!

+0

Ich habe versucht mit OmniAuth, aber es hat nicht gut für mich gearbeitet. Ich habe es geschafft, indem ich den Beispiel-Python-Code von Google in Ruby umwandelte und die entsprechenden Controller hinzufügte. Da es ziemlich kompliziert ist, werde ich bald einen Blog-Post mit den Details schreiben. –

+1

Welches Problem hatten Sie mit OmniAuth? –