我正在尝试通过我正在构建的 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
在我通过谷歌的网络界面授权应用程序之后,我得到了似乎是对我自己的 sinatra 应用程序的正确回调。我不清楚在这个过程中我接下来要做什么。我从谷歌身份验证系统得到的东西看起来像
http://localhost:9393/oauth2callback?code=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
然后我尝试使用 xoauth gem 来查询谷歌以获取有关我的帐户的信息,即 https://github.com/nfo/gmail_xoauth
我希望上面的 xxxxxx.yyyy 字符串以某种方式对应于值:token 写在 xoauth gem 文档中。当我运行本地脚本以检查事情是否正常时,我得到了Invalid credentials (Failure) (Net::IMAP::NoResponseError)
我用来理解 oauth 过程的文档是https://developers.google.com/accounts/docs/OAuth2WebServer
我认为我没有正确处理回调,或者我误解了它是什么。
想法?