gpt4 book ai didi

ruby-on-rails - Twitter rails gem Update_with_media 返回未经授权

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:10 27 4
gpt4 key购买 nike

我正在使用 Twitter gem 来验证内容并将内容分享到 Twitter。我还需要包含一张图片,所以我使用“update_with_media”方法,如下所示:

def tweet
client = Twitter::REST::Client.new do |config|
config.consumer_key = "my consumer key"
config.consumer_secret = "my consumer secret"
config.access_token = "my access token"
config.access_token_secret = "my secret access token"
end
url = @flip.image_urls[:normal].to_s
r = open(url)
bytes = r.read
img = Magick::Image.from_blob(bytes).first
fmt = img.format
data = StringIO.new(bytes)
data.class.class_eval { attr_accessor :original_filename, :content_type }
data.original_filename = @flip.slug + "." + fmt unless @flip.slug.nil?
data.content_type='image.jpg'

client.update_with_media(personal_message, data)
end

我得到了这样的回应:

Twitter::Error::Unauthorized (Could not authenticate you):

对于与 Twitter 的所有其他交互、获取关注者或推文(更新无媒体),它在同一帐户下工作正常,因此我的凭据是正确的。

有什么想法吗?这是 Twitter 的 API 或 Twitter Gem 上的错误吗? ?

感谢任何帮助,谢谢。

最佳答案

我发现了问题。Twitter 返回的错误非常具有误导性且不准确。

我的代码的问题是您不能使用 StringIO 文件使用 update_with_media 方法,它必须是 File 对象(File 类)。

所以这是解决方案:

client.update_with_media(message_link, open(url))

其中 url 是您需要的图像 URL。在我的例子中是存储在 AWS 上的我的 Flip 模型的图像 url。

关于ruby-on-rails - Twitter rails gem Update_with_media 返回未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330953/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com