kit*_*nky 2 twitter sinatra stringio
将Twitter API允许你通过他们的媒体添加到您的鸣叫update_with_tweet方法。
我正在使用Sinatra并Twitter设置了所有配置。我能够成功地使用我的应用发布推文。
我的应用程序读取网页,从该页面提取照片,然后应该将它们单独发布到 Twitter。我成功地使用Nokogiri.
但是,我无法将这些照片转换为Twitter允许的媒体类型。因为我也在使用urigem,给出这个例子:photo_url = "placekitten.com/300/300",我可以调用media = open(photo_url),这会返回一个StringIO.
但是,当我尝试将新存储的媒体与我的帖子一起发布给Twitter我时,出现了The IO object for media must respond to to_io (Twitter::Error::UnacceptableIO).
我试图弄清楚如何正确格式化/调用图像,以便我可以成功地将其发布到 Twitter。
小智 6
我遇到了同样的问题,但使用的是 Rails。
问题在于图像大小:如果图像大小小于 10kb,open(photo_url)则将给您StringIO对象,如果大小大于 10kb ,则 -File保存在tmp/文件夹中的对象。File对象响应to_io方法而StringIO对象不响应。
您可以做什么 -tmp从您的文件在文件夹中创建文件,然后使用此文件发布到 TW。例如:
img = open(url)
if img.is_a?(StringIO)
ext = File.extname(url)
name = File.basename(url, ext)
Tempfile.new([name, ext])
else
img
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |