Ruby on Rails-OAuth 2多部分帖子(上传到Facebook或Soundcloud)
|
我正在使用Rails应用程序,该应用程序使用OmniAuth为我的用户收集Oauth / OAuth2凭据,然后代表他们发布到那些服务中。
创建简单的帖子来更新状态供稿非常有用。现在,我需要上传文件。 Facebook说\“要发布照片,请发出带有文件文件附件的POST请求(multipart / form-data)。” http://developers.facebook.com/docs/reference/api/photo/
这就是我想要做的:
我在这里实现了模块:Ruby:如何通过HTTP将文件作为multipart / form-data发布?获取标题和数据...
if appearance.post.post_attachment_content_type.to_s.include?(\'image\')
fbpost = \"https://graph.facebook.com/me/photos\"
data, headers = Multipart::Post.prepare_query(\"title\" => appearance.post.post_attachment_file_name , \"document\" => File.read(appearance.post.post_attachment.path))
paramsarray = {:source=>data, :message=> appearance.post.content}
response = access_token.request(:post, fbpost, paramsarray, headers)
appearance.result = response
appearance.save
end
我但是我收到了OAuth2 :: HTTPError-HTTP 400错误
任何帮助都是难以置信的...正如我所看到的,将文件上传到SoundCloud时也需要此信息。
谢谢,
标记
没有找到相关结果
已邀请:
2 个回复
扇献隙
这将多部分编码支持添加到法拉第连接中。接下来,在访问令牌对象上发出请求时,您想使用Faraday :: UploadIO对象。所以:
在上面的代码中: io-您要上传的文件的IO对象。可以是File对象,甚至可以是StringIO。 mime_type-您要上传的文件的mime类型。您可以尝试检测此服务器端,或者如果用户将文件上传到您,则应该能够从其请求中提取MIME类型。 文件名-正在调用您要上传的文件。这也可以由您自己选择来确定,也可以使用上传文件的任何用户调用它。 某些/网址-用您要发布到的网址替换 {url:\'params \'}-用您要提供的任何URL参数替换 {file:upload}-用多部分表格数据替换。显然,一个(或多个)键/值对应该具有文件上传的实例。
括宠