Ruby on rails Rails-使用URL将图片上传到Facebook
我在Facebook API中使用Ruby on rails Rails-使用URL将图片上传到Facebook,ruby-on-rails,facebook,amazon-s3,Ruby On Rails,Facebook,Amazon S3,我在Facebook API中使用Koala,在AmazonS3中使用回形针 我已经完成了S3上传的代码,但是Facebook的上传有问题 以下是我的简化代码: @user = User.find(params[:id]) @graph = Koala::Facebook::API.new(session[:access_token]) file = open(@user.photo.url(:origin)).read # ALBUM_ID is constant, its value is
Koala
,在AmazonS3中使用回形针
我已经完成了S3上传的代码,但是Facebook的上传有问题
以下是我的简化代码:
@user = User.find(params[:id])
@graph = Koala::Facebook::API.new(session[:access_token])
file = open(@user.photo.url(:origin)).read
# ALBUM_ID is constant, its value is the Facebook's album ID
@graph.put_picture(file, { }, ALBUM_ID)
我在最后一行中不断遇到此错误:
ArgumentError
string contains null byte
我认为我设置文件的方法是错误的,但我找不到其他方法
感谢您。使用URL在facebook上传图片时,您只需直接发送图片URL(您不需要发送二进制数据)
将API调用更新为:
# ALBUM_ID is constant, its value is the Facebook's album ID
@graph.put_picture(@user.photo.url(:origin), {}, ALBUM_ID)
使用put_picture
方法的其他一些方法:
# put_picture(file, content_type, {:message => "Message"}, 01234560)
# put_picture(params[:file], {:message => "Message"})
# # with URLs, there's no optional content type field
# put_picture(picture_url, {:message => "Message"}, my_page_id)
来源:gem。谢谢你的回复。我不断从Facebook上收到未知错误500
,这很可能是由于回形针的URL扩展名为../my image.jpg?140583423
。我试着在没有那个扩展名的情况下对URL进行编码,结果成功了。有没有办法禁用该扩展?如果我理解您的评论,@user.photo.url(:origin).split(“?”)[0]
可以为您工作
# put_picture(file, content_type, {:message => "Message"}, 01234560)
# put_picture(params[:file], {:message => "Message"})
# # with URLs, there's no optional content type field
# put_picture(picture_url, {:message => "Message"}, my_page_id)