[英]How to post facebook wall with uploaded image/video attachment using koala gem?
我正在做一个涉及使用Koala gem调用Facebook图形API的Rails项目。 是否可以通过图形API将带有图片/视频附件(而非图片链接)的图片发布到Facebook墙?
我可以使用此命令来放置图片
graph = Koala::Facebook::API.new(access_token)
graph.put_picture(params["picture_path"]) #where params["picture_path] is ActionDispatch::Http::UploadedFile object
但这只会上传到相册
我这样做失败:
graph = Koala::Facebook::API.new(access_token)
graph.put_wall_post("hello", {"picture" => params["picture_path"]} ) #where params["picture_path] is ActionDispatch::Http::UploadedFile object
错误:
undefined method `local_path' for #<ActionDispatch::Http::UploadedFile:0x00000106100a70>
救命 ?
这是一个用rmagick生成的图像的示例:
首先创建一个图像:
@clown = Magick::ImageList.new("public/images/framed_clown.jpg")
然后放入相册(必须使用StringIO)和to_blob:
@clown_id = StringIO.open(@clown.to_blob) do |strio|
response = @graph.put_picture(strio, "image/jpeg")
response['id']
end
现在,@clown_id包含图像的ID,以获取URL:
@picture_url = @graph.get_picture(@clown_id)
最后我们可以贴墙了吗? 好吧,请记住您需要publish_stream权限:
FACEBOOK_SCOPE = 'user_likes,user_photos,user_photo_video_tags,publish_stream'
所以我们可以说:
begin
@graph.put_wall_post("This a test", {"picture" => @picture_url})
rescue => e
if(e.fb_error_type == "OAuthException")
# Already Posted
end
end
因为最好将控件放置在重复的状态消息中。
请享用!!!!!
这对我有用:
graph.put_picture(params["picture_path"], {:message => "Message"})
(摘自: https : //github.com/arsduo/koala/wiki/Uploading-Photos-and-Videos )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.