gpt4 book ai didi

ruby-on-rails-3 - HTTP::Parser::Rails 和 Twitter Streaming API 出错

转载 作者:行者123 更新时间:2023-12-04 07:00:18 24 4
gpt4 key购买 nike

我目前正在构建一个应用程序 (Rails 3.1rc6),该应用程序涉及从 Twitter Streaming API 过滤数据,但在接收流后遇到问题。

我曾尝试同时使用 Twitter-Stream gem 和 tweetstream gem,但两者都遇到了同样的问题,这并不奇怪,因为 tweetstream 依赖于 Twitter-Stream。

我可以获得绝对好的流,并在我计划作为守护进程运行的 tracker.rb 文件中使用以下代码打印相关信息:

require 'rubygems'
require 'twitter/json_stream'
require 'json'

EventMachine::run {
stream = Twitter::JSONStream.connect(
:path => '/1/statuses/filter.json?track=rails',
:auth => 'user:password'
)

stream.each_item do |item|
@result = JSON.parse(item)
puts @result["text"]

end

#Handle Errors...

我计划过滤某些单词并将它们存储在数据库中,但是当我尝试使用 ActiveRecord 做任何事情时,我会收到以下错误

Tom-Liveseys-MacBook-Air:twitter_stream Tom$ ruby ./lib/daemons/tracker.rb
String
/Library/Ruby/Gems/1.8/gems/twitter-stream-0.1.14/lib/twitter/json_stream.rb:121:in `<<': Could not parse data entirely (HTTP::Parser::Error)
from /Library/Ruby/Gems/1.8/gems/twitter-stream-0.1.14/lib/twitter/json_stream.rb:121:in `receive_data'
from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'
from /Library/Ruby/Gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'
from ./lib/daemons/tracker.rb:5

有谁知道为什么我不能对数据做任何有用的事情?我已检查 JSON 是否已正确解析,并且 @result["text"] 返回正确的字符串。

谢谢,

汤姆

最佳答案

好的,我明白了为什么会出现错误。我试图将 tweet id 获取为整数并将其插入到它不喜欢的 pg 数据库(在 heroku 上)。

也许错误来自于尝试用这么大的整数读取该属性。无论如何,我将列类型更改为字符串并改为获取 tweet["id_str"] 属性。现在效果很好。

关于ruby-on-rails-3 - HTTP::Parser::Rails 和 Twitter Streaming API 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174073/

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