【问题标题】:Ruby, update twitter avatar and backgroundRuby,更新推特头像和背景
【发布时间】:2015-08-24 12:37:34
【问题描述】:

如何使用 Ruby 更改/更新头像和背景图片?

client = Twitter::REST::Client.new do |config|
    config.consumer_key        = "xxxxx"
    config.consumer_secret     = "xxxxx"
    config.access_token        = "xxxxx"
    config.access_token_secret = "xxxxx"
end

文件夹的名称是“avis”...它包含 jpg 文件。

avis = Dir.entries("avis")
avi = avis.sample


puts client.update_profile_image(avi)

我的回答是:

rb:15:in `on_complete': media type unrecognized. (Twitter::Error::BadRequest)

即使我说:

path = "/Users/.../avis"

file = File.open(path, "r")

file.each_line { |line| 
  puts line
} 
f.close

我的回答是:

twitter.rb:819:in `each_line': Is a directory @ io_fillbuf - fd:10 /Users/,,,/Ruby/avis (Errno::EISDIR)
from twitter.rb:819:in `<main>'

【问题讨论】:

  • 请发布完整的error stacktrace
  • @Pavan 我刚刚做了,这有助于更好地解释我的问题吗?

标签: ruby-on-rails ruby image twitter avatar


【解决方案1】:

您是否遵循了 api 文档?我看不到你对任何 base64 进行编码。

个人资料的头像图像,base64 编码。必须是大小小于 700 KB 的有效 GIF、JPG 或 PNG 图像。宽度大于 400 像素的图像将被缩小。动画 GIF 将被转换为第一帧的静态 GIF,删除动画。

File.read() 中的 'r' 是什么?你把它和File.open()混在一起了吗?

【讨论】:

  • 是的,我不知道如何让它上传 .jpg 文件。所以我尝试了 File.open、File.read 等...你会如何上传 .jpg 文件?
  • 没有上传文件这样的事情。您从文件中读取数据,然后在您的发布请求中将该数据发送到 twitter api。正如文档所述,您必须将其编码为 base64。所以我最好的猜测是写这样的东西client.update_profile_image(Base64.encode64(File.read('the-image-file.png')))
  • 有没有办法从文件夹中读取随机的 .jpg 文件?我似乎无法从我的文件夹中读取它。我为您编辑了代码以了解我的意思...
  • 中途更改问题不是一个好习惯,否则其他人无法理解答案。请改回来并发布一个新问题。
猜你喜欢
  • 2011-07-18
  • 1970-01-01
  • 2016-03-20
  • 2011-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-03
相关资源
最近更新 更多