【问题标题】:Creating a persistant connection to twitter stream API using R使用 R 创建到 twitter 流 API 的持久连接
【发布时间】:2013-05-19 16:32:05
【问题描述】:

我目前正在使用 R 中的 streamR 包从 twitter 中的过滤器流中流式传输推文。我有一个用于此的握手 ROAuth 对象。我的一段代码如下所示:

# load the Twitter auth object
load("twitter_oAuth3.RData")
load("keywords3.RData")

streamTweet = function(){
  require(streamR)
  require(ROAuth)

  stack = filterStream(file.name="",track=keywords,timeout=500,oauth=twitter_oAuth)
  return(stack)
}

我想创建一个实时应用程序,其中包括将这些推文转储到一个 activeMQ 主题中。我的代码是:

require(Rjms)

# Set logger properties
url = "tcp://localhost:61616"
type = "T"
name = "TwitterStream"

# initialize logger
topicWriter = initialize.logger(url,type,name)

topicWrite = function(input){
#   print("writing to topic")
  to.logger(topicWriter,input,asString=TRUE,propertyName='StreamerID',propertyValue='1')
  return()
}

logToTopic = function(streamedStack){ 
#   print("inside stack-writer")
  stacklength = length(streamedStack)
  print(c("Length: ",stacklength))
  for(i in 1:stacklength){
    print(c("calling for: ",i))
    topicWrite(streamedStack[i])
    }
  return()
}

现在我的问题是filterStream() 需要的超时。我查看了引擎盖,发现了这个函数的调用:

url <- "https://stream.twitter.com/1.1/statuses/filter.json"
    output <- tryCatch(oauth$OAuthRequest(URL = url, params = params, 
                                          method = "POST", customHeader = NULL, 
                                          writefunction = topicWrite, cainfo = system.file("CurlSSL", 
                                                                                             "cacert.pem", package = "RCurl")), error = function(e) e)

我尝试删除超时组件,但它似乎不起作用。有没有一种方法可以永远维持一个流(直到我杀死它),当它进入一个主题时,它会转储每条推文?

附:我知道一个调用 twitter4j API 的 java 实现。然而,我不知道如何在 R 中做到这一点。

【问题讨论】:

    标签: r twitter roauth


    【解决方案1】:

    streamR 包的文档提到filterStream() 中超时选项的默认选项为 0,这将保持连接永久打开。

    我引用:

    “数字,连接到流的最大时间长度(以秒为单位)。 这段时间过后,连接将自动关闭。例如,设置 超时到 10800 将使连接保持打开 3 小时。默认值为 0, 这将使连接永久打开。”

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多