我正试图通过我正在构建的sinatra应用程序访问我自己的gmail帐户。我正在以的形式向谷歌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
在我通过谷歌的网络界面授权该应用程序后,我得到了一个似乎是对我自己的sinatra应用程序的正确回调。我不清楚在这个过程中我下一步要做什么。我从谷歌身份验证系统得到的东西看起来像
http://localhost:9393/oauth2callback?code=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
然后我尝试使用xoauth gem来查询谷歌以获取有关我的帐户的信息,即,https://github.com/nfo/gmail_xoauth我希望上面的xxxxxx.yyyy字符串在某种程度上对应于:令牌,如xoauthgem文档中所写。当我运行一个本地脚本来检查事情是否正常工作时,我得到了一个Invalid credentials (Failure) (Net::IMAP::NoResponseError)
我用来理解oauth过程的文档是https://developers.google.com/accounts/docs/OAuth2WebServer
我认为我没有正确处理回调,或者我误解了它是什么。
想法?
Google最近才为GMail IMAP/SMTP添加了对OAuth 2授权的支持。但是,您正在使用的库还不支持此功能。
所以你的选择是:
- 自己改进图书馆(我的建议是)
- 正在等待库更新
- 回退到已弃用的OAuth 1