Ruby on Rails:如何使用OAuth2 :: AccessToken.post?

OAuth2 :: AccessToken.post()方法在文档中指定如下:

(对象)post(path,opts = {},&block)

我试图传递一些论点,但似乎我做错了:

response = token.post('/oauth/create.js', {:title => "title", :description => "desc"}) 

参数永远不会达到方法,值始终为零。 那么,使用带有参数的post方法的正确方法是什么? 什么是&块?

我也得到警告:无法validationCSRF令牌的真实性。 这也可能导致问题。 情况是我在应用程序外部使用OAuth api。 OAuth 2通过Doorkeeper gem实现。

更新:在我定义范围后,CSRF警告现在消失了。 此外,我设法通过提供url的一部分来使用带有参数的post()方法:“?title = test&…”。 仍然很高兴知道如何使用此方法记录。

POST或PUT中的主体可通过选项主体参数访问。 没有这方面的文件。 不得不查看oauth客户端代码本身来发现这个:

https://github.com/intridea/oauth2/blob/ebe4be038ec14b3496827d29cb224235e1c9f468/lib/oauth2/client.rb

你的例子,正确的身体将是:

 response = token.post('/oauth/create.js', {body: {:title => "title", :description => "desc"}}) 

您可以使用块传递参数以发布请求:

 token.post('/oauth/create.js') do |request| request.params['title'] = "something" end 

OAuth2 gem使用法拉第, request对象是法拉第请求,因此您可能需要检查其他方法来传递参数以及请求

法拉第gem=> https://github.com/lostisland/faraday