Ruby on rails 使用Pronto表单和RoR进行REST身份验证

Ruby on rails 使用Pronto表单和RoR进行REST身份验证,ruby-on-rails,rest,api,authentication,faraday,Ruby On Rails,Rest,Api,Authentication,Faraday,我对远程RESTAPI的使用还不熟悉,想知道是否有人有从Pronto表单连接和使用RESTAPI的经验 尽管本产品提供了使用curl的示例,但没有为应用程序提供具体示例。除了在我的用户配置文件中设置API密钥之外,从身份验证的角度来看,最低限度的在线文档仅引用了这样一个事实,即他们的API非常标准(我可以接受这一点),并且基本身份验证是通过https使用的 我一直在挖掘各种RoR页面,发现Faraday gem提供了一些很好的功能,用于使用基本身份验证创建连接,然后实现与远程连接的轻松RESTf

我对远程RESTAPI的使用还不熟悉,想知道是否有人有从Pronto表单连接和使用RESTAPI的经验

尽管本产品提供了使用curl的示例,但没有为应用程序提供具体示例。除了在我的用户配置文件中设置API密钥之外,从身份验证的角度来看,最低限度的在线文档仅引用了这样一个事实,即他们的API非常标准(我可以接受这一点),并且基本身份验证是通过https使用的

我一直在挖掘各种RoR页面,发现Faraday gem提供了一些很好的功能,用于使用基本身份验证创建连接,然后实现与远程连接的轻松RESTful交互。但是,我无法成功地进行身份验证,我从远程服务器收到的所有响应都返回状态302,并且似乎引用了重定向到“api.prontoforms.com/login”

奇怪的是,当我试图从普通浏览器访问任何REST资源时,我都能做到。浏览器只会提示我用户名和密码。当我使用我的常规登录信息时,没有授权,但当我输入API凭据时,一切似乎正常。尽管事实上“API密钥”和“API密钥密钥密钥”对本身不是“用户名”和“密码”。我不相信pronto表单使用oauth或oauth2

我的问题如下:

  • 执行基本身份验证时,“API密钥”和“API密钥机密”是否等同于“用户名”和“密码”?这只是措辞的问题吗
  • 在尝试使用法拉第创建连接时,我是否缺少一些东西:

    @conn = Faraday.new(:url => 'https://api.prontoforms.com/api/1') do |faraday|
         faraday.adapter Faraday.default_adapter
         faraday.basic_auth('<API_KEY>', '<API KEY SECRET>')
         faraday.headers['Content-Type'] = 'application/json'
    end
    
    @response = @conn.get '/data.json'
    
    @conn=Faraday.new(:url=>'https://api.prontoforms.com/api/1|法拉第|
    faraday.adapter faraday.default_适配器
    法拉第.基本认证('','')
    headers['Content-Type']='application/json'
    结束
    @response=@conn.get'/data.json'
    
  • 有什么经验或建议吗