0

我正在使用使用 URL“ https://stream.twitter.com/1.1/statuses/filter.json ”的 HTTP POST 方法,并且在正文中我发布了我想从中获取推文的键/值 - 例如“轨道=伦敦”。这工作正常。

现在我正在尝试切换到 AKKA-CAMEL,并且正在使用他们的 Twitter 消费者。我正在使用以下端点 URL:

def endpointUri: String = s"twitter:////search?type=direct&keywords=${Settings.queryList()}&consumerKey=${tweeterCredentials.consumerKey}&consumerSecret=${tweeterCredentials.consumerSecret}&accessToken=${tweeterCredentials.accessToken}&accessTokenSecret=${tweeterCredentials.accessTokenSecret}"

我收到了来自 twitter 的回复,但它不是 JSON 格式的,而且它与之前的推文信息不同。它只是返回推文文本,但在我获得需要分析的整个元数据之前。

有人知道如何配置 Camel URI 以像以前一样返回 JSON 和整个元数据吗?

谢谢

4

1 回答 1

0

我通过使用以下语法使其工作:

def endpointUri: String = s"twitter://streaming/filter?type=event&keywords=${Settings.queryList()}&consumerKey=${tweeterCredentials.consumerKey}&consumerSecret=${tweeterCredentials.consumerSecret}&accessToken=${tweeterCredentials.accessToken}&accessTokenSecret=${tweeterCredentials.accessTokenSecret}"

其中: Settings.queryList 返回一个逗号分隔的 keyworkd 列表。对象 tweeterCredentials 持有来自 Tweeter 的用于访问该站点的密钥。

在 Camel 中也需要像这样设置 autoAck:

覆盖 def autoAck = true

这可以防止超时异常。

于 2017-02-19T19:00:56.723 回答