2

OAuthAPIを備えたRailsアプリがあります。OAuth2認証にDoorkeepergemを使用しています。私のAPIでは、画像ファイルが添付されたメッセージを投稿できます。Rubyコンソールからテストしたいのですが。さて、問題は-アクセストークンを使用して投稿リクエストに署名するにはどうすればよいですか?

Doorkeeper wikiは、OAuth2gem自体を使用したAPIのテストに関するチュートリアルを提供します。そこにある問題は、OAuth2クラスが、添付ファイル付きのマルチパートメッセージを投稿する方法を提供しないことです(私が入手した限り)。

https://github.com/applicake/doorkeeper/wiki/Testing-your-provider-with-OAuth2-gem

次に、RailsAPIへの添付ファイルとしてファイルを投稿できるmultipart-postgemがあります。しかし、access_tokenを使用してそのような要求に署名し、ドアキーパー認証を渡す方法がわかりません。

https://github.com/nicksieger/multipart-post

では、access_tokenで署名されたRails APIにマルチパートメッセージを投稿する適切な方法は何ですか?

4

2 に答える 2

2

oauth2gemはマルチパートアップロードをサポートしていないようです。この問題を確認してください:https ://github.com/intridea/oauth2/issues/81

access_token回避策は、クエリ文字列またはヘッダーとして、パラメータにを含めることです。READMEの例に従います。

require 'net/http/post/multipart'

url = URI.parse('http://www.example.com/upload')
File.open("./image.jpg") do |jpg|
  req = Net::HTTP::Post::Multipart.new url.path,
    "file" => UploadIO.new(jpg, "image/jpeg", "image.jpg")

  # here you include the token in headers
  req['Authorization'] = "Bearer #{THE_ACCESS_TOKEN}"
  res = Net::HTTP.start(url.host, url.port) do |http|
    http.request(req)
  end
end
于 2012-05-03T09:14:24.623 に答える
0

このエラーが発生した場合は、ssl を明示的に設定する必要もあります。

EOFError in YourController#youraction 
end of file reached

require 'net/http/post/multipart'

url = URI.parse('http://www.example.com/upload')
File.open("./image.jpg") do |jpg|
  req = Net::HTTP::Post::Multipart.new url.path, 
    "file" => UploadIO.new(jpg, "image/jpeg", "image.jpg")

  # here you include the token in headers
  req['Authorization'] = "Bearer #{THE_ACCESS_TOKEN}"

  http = Net::HTTP.new(url.host, url.port)

  #mention the use of ssl
  http.use_ssl = true

  res = http.request(req)
end
于 2013-04-09T13:37:03.077 に答える