我正在尝试创建一个脚本来访问Quizlet API
这些API受OAuth2保护,我正在使用此oauth2
ruby gem https://github.com/intridea/oauth2
gem的GitHub页面显示了一个例子,但对我来说不起作用,我觉得我错过了一些作品。 这是示例的一部分:
client.auth_code.authorize_url(:redirect_uri => 'http://localhost:8080/oauth2/callback')
# => "https://example.org/oauth/authorization?response_type=code&client_id=client_id&redirect_uri=http://localhost:8080/oauth2/callback"
token = client.auth_code.get_token('authorization_code_value', :redirect_uri => 'http://localhost:8080/oauth2/callback', :headers => {'Authorization' => 'Basic some_password'})
两个问题:
authorize_url
的结果?应该在浏览器上打开此URL以继续登录,但gem不会自动打开它。我应该要求用户这样做吗?http://localhost:8080/oauth2/callback
,但不清楚gem itelf是否负责监听该端口。 有任何建议吗?
答案 0 :(得分:0)
可能更容易查看Quizlet API要求您执行的操作,并跳过与oauth gem的集成。我可能错了,我有兴趣看看如何使用gem,但是看看如何逐步实现oauth客户端仍然是一个好主意。
这取自Quizlet API文档:
https://quizlet.com/authorize
。这可以通过显示用户单击或重定向服务器端的链接来完成。/authorize
调用,Quizlet现在将使用redirect_uri
来与您的服务器取得联系。在您的服务器对此路线的操作中,您可以获得authorization_code
。authorization_code
发送给https://api.quizlet.com/oauth/token
,并在回复中获取您用于其余api请求的access_token
。关于宝石