我正在尝试遵循Google Oauth指南来授予我的Rails应用程序编辑用户日历的权限。也许是我误会了,但是guide似乎在说,您要做的就是向Google API发送特定请求,这将提示用户弹出同意屏幕。但是,我发送的请求没有错误,但是没有任何反应。
我的应用程序已经过验证,并且我尝试使用的URL已添加到我的Oauth凭据中。从理论上讲,在这种情况下没关系,但是我还安装了“ google-api-client”,“ omniauth”和“ omniauth-google-oauth2” gem。该URL是带有SSL证书的HTTPS。
我在做什么错了?
# this is the controller action for my path, so the API is pinged when the page is loaded
def path
url = "https://accounts.google.com/o/oauth2/v2/auth?
scope=email%20profile%20calendar.events&
response_type=code&
redirect_uri=<URL>&
client_id=<CLIENT_ID>"
require 'open-uri'
require 'uri'
require 'net/http'
require 'json'
require 'net/https'
uri = URI(url)
response = Net::HTTP.get(uri)
end
答案 0 :(得分:1)
指南有点混乱。他们说“向URL https://accounts.google.com/o/oauth2/v2/auth发送请求”,但实际上是“在浏览器中打开该URL”。我认为这就是您误解的地方。
因此,创建此html文件:
<a href="https://accounts.google.com/o/oauth2/v2/auth?scope=email%20profile%20calendar.events&response_type=code&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID">Login
with Google</a>
现在在浏览器中打开html文件,然后单击链接。您会注意到Google服务器将浏览器重定向到您指定的REDIRECT_URI。您可以在Web服务器日志中看到日志(如果服务器可以工作),或者浏览器将显示错误消息,并且可以在浏览器地址栏中看到包含Google发送的所有查询参数的URL。
在文档中查看您的服务器必须对重定向的请求做出响应,以便最终显示同意屏幕。
显示时,过程类似:您-作为用户-授予所请求的权限,并且当您单击按钮时,Google会再次重定向,然后从查询参数中获取令牌。