我正在尝试实施 Google OAuth 2 以访问 Google API。我遵循本指南,使用服务器端方案。
我在获取代码方面没有问题,服务器重定向到 localhost(这是目前重定向 URI 中唯一允许的服务器)。为了实现这一点,我去https://accounts.google.com/o/oauth2/auth?client_id=whatever.apps.googleusercontent.com&redirect_uri=http://localhost/&scope=https://www.google.com/m8/feeds/&response_type=code
页面。
然后,我尝试使用curl
(如指南)来测试 Google 的服务器是否使用访问令牌进行响应。但是,它似乎很难失败。我能得到的唯一回应是{"error":"invalid_client"}
。我确定我提供了 Google 希望我提供的所有内容 - 代码、客户端 ID、客户端密码、重定向 URI (localhost) 和grant_type=authorization_code
.
整个curl
命令行是:
curl https://accounts.google.com/o/oauth2/token -d "code=<code>&client_id=whatever.apps.googleusercontent.com&client_secret=<won't tell!>&redirect_uri=http://localhost&grant_type=authorization_code"
我错过了什么吗?如何用代码交换访问令牌?