我正在尝试通过我正在构建的sinatra应用程序访问我自己的gmail帐户。我向google api发送了一个请求,格式为
https://accounts.google.com/o/oauth2/auth?response_type=code&&scope=https://mail.google.com/+https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile&client_id=XXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=http://localhost:9393/oauth2callback&access_type=online
在我通过google的web界面授权了这个应用程序之后,我得到了一个对我自己的sinatra应用程序的似乎正确的回调。我不清楚在这个过程中我下一步要做什么。我从google auth系统中得到的信息如下所示
http://localhost:9393/oauth2callback?code=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
然后,我尝试使用xoauth gem向google查询有关我的帐户的信息,即https://github.com/nfo/gmail_xoauth我希望上面的xxxxxx.yyyy字符串以某种方式与xoauth gem文档中所写的value of :token相对应。当我运行一个本地脚本来检查工作是否正常时,我得到了一个Invalid credentials (Failure) (Net::IMAP::NoResponseError)
我用来理解oauth过程的文档是https://developers.google.com/accounts/docs/OAuth2WebServer
我认为我没有正确地处理回调,或者我误解了它是什么。
有什么想法?
发布于 2012-09-13 16:09:41
谷歌最近才增加了对OAuth 2 authorization for GMail IMAP/SMTP的支持。但是,您正在使用的库支持not support this yet。
所以你的选择是:
https://stackoverflow.com/questions/12400688
复制相似问题