Sid*_*Sid 4 file-upload ruby-on-rails facebook-graph-api koala
我按照以下博文来弄清楚如何使用我的应用程序远程创建Facebook事件.我一直在从我的应用程序加载图像时遇到问题,但是,因为我的应用程序没有本地存储的图像,所以它们存储在AWS中.
Run Code Online (Sandbox Code Playgroud)@graph = Koala::Facebook::GraphAPI.new(@token) picture = Koala::UploadableIO.new(@event.photo.url(:small)) params = { :picture => picture, :name => 'Event name', :description => 'Event descriptio :start_time => datetime, }
是我正在使用以下代码在我的应用程序上创建Facebook事件时将图片发送到Facebook.但是,问题是Rails抛出错误:没有这样的文件或目录 - http://s3.amazonaws.com/ColumbiaEventsApp/photos/21/small.jpeg?1312521889.
对Rails开发更有经验的人是否知道我是否有办法将URL视为文件路径?UploadableIO类需要一个文件路径,而我正在努力弄清楚Ruby是否有办法将URL视为文件路径.存储在应用程序上的照片可以加载到Facebook的方式如下:
picture =考拉:: UploadableIO.new(File.open("路径到你的事件图像"))
如果这有帮助.
我很欣赏这个问题的任何新见解.
好的,所以我玩了一下,想出了如何发布图片.
基本上我所做的是使用'open-uri'库将图像链接转换为文件对象,然后可以将其传递给UploadableIO并发送到Facebook.这是有效的代码:
require 'open-uri'
OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
OpenURI::Buffer.const_set 'StringMax', 0
picture = Koala::UploadableIO.new(open(@event.photo.url(:small)).path, 'image')
params = {
picture: picture,
name: @event.name,
description: @event.description,
location: @event.location,
start_time: datetime
}
@graph.put_object('me', 'events', params )
Run Code Online (Sandbox Code Playgroud)
需要更改OpenURI常量StringMax,因为我使用的图像文件足够小,文件被处理为字符串而不是文件对象.
希望这有助于任何人试图解决这个问题!
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |