Ruby on rails 如何将CURL命令转换为Rails对OAuth令牌的POST请求?

Ruby on rails 如何将CURL命令转换为Rails对OAuth令牌的POST请求?,ruby-on-rails,curl,oauth-2.0,instagram,Ruby On Rails,Curl,Oauth 2.0,Instagram,我是一名网络开发专业的学生,正在努力和。我以前从未和OAuth打过交道 到目前为止,我可以从授权我使用Instagram凭据的用户那里获得代码,但获取实际令牌的POST请求却让我不知所措。我正在尝试使用服务器端API请求,但遇到的问题是如何将curl命令转换为可用的rails控制器脚本 Instagram API建议使用以下curl命令: curl \-F 'client_id=CLIENT-ID' \ -F 'client_secret=CLIENT-SECRET' \ -F 'grant_t

我是一名网络开发专业的学生,正在努力和。我以前从未和OAuth打过交道

到目前为止,我可以从授权我使用Instagram凭据的用户那里获得代码,但获取实际令牌的POST请求却让我不知所措。我正在尝试使用服务器端API请求,但遇到的问题是如何将curl命令转换为可用的rails控制器脚本

Instagram API建议使用以下curl命令:

curl \-F 'client_id=CLIENT-ID' \
-F 'client_secret=CLIENT-SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=YOUR-REDIRECT-URI' \
-F 'code=CODE' \https://api.instagram.com/oauth/access_token
以下是我对Typhous POST请求的尝试:

request = Typhoeus::Request.new(
  "https://api.instagram.com/oauth/access_token",
  method: :post,
  :body => {:client_id => CLIENT_ID,
              :client_secret => CLIENT_SECRET, 
              :grant_type => "authorization_code", 
              :redirect_uri => CALLBACK_URL, 
              :code => code}
  )
@results = JSON.parse((request.run).body)
当我尝试记录@results时,会出现以下错误:

{"code"=>400, "error_type"=>"OAuthException", "error_message"=>"You must provide a client_id"}

我有API需要的所有信息,我只是不知道如何正确安排它。。。是的,所有的常数都被定义了。感谢您的帮助

我建议使用向Instagram API发出请求。你会发现这比使用Typhous要容易得多。

不知何故,我解决了自己的问题。上面的Typhous脚本工作得很好,对每个人都有很多JSON的喜爱

我想当@results返回为nil时,我可能在rails服务器上遇到了一些模糊的会话问题


我希望我能有一个更具体的答案来解释为什么这个问题不能早点解决,但我会在前进的过程中保持冷静,希望能有一个更令人满意的结论。

我在powershell中也遇到了同样的问题 最后,我还将客户机id和代码放入查询字符串中。然后它就起作用了。我的意思是这样的:


我正在工作的项目要求我们使用rails。所以我没有西纳特拉!不过,谢谢,我们已经研究过了。您应该能够使用Rails:看这篇文章:不知何故,我实际上只是设法使它与上面的代码一起工作。我确信我没有改变任何东西,但是@results现在充满了JSON。在我弄清楚我到底做了什么来解决这个问题之前,我会一直保留这个问题。