0

我正在尝试通过我正在构建的 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

我认为我没有正确处理回调,或者我误解了它是什么。

想法?

4

1 回答 1

0

Google 最近才为 GMail IMAP/SMTP 添加了对 OAuth 2 授权的支持。但是,您正在使用的库尚不支持此功能。

所以你的选择是:

  • 自己改进图书馆(这是我的建议)
  • 等待库更新
  • 回退到已弃用的OAuth 1
于 2012-09-13T08:09:41.293 回答