我正在尝试从我的rails应用程序中的Twitter Streaming API获取数据,并且我创建了自己的模块,它给了我twitter Authorization Head
。我能够获得授权,但我没有得到回复...我所看到的是pending
状态下的请求(我猜测它的流和连接未被关闭)。我可以对下面的代码做什么,以便我可以从Streaming API开始打印响应?
class MainController < ApplicationController
include Oauth::Keys
def show
@oauth_signature_string = Oauth::Signature.generate(signature_params)
@header = Oauth::HeaderString.create(header_params)
RestClient::Request.execute(method: :GET, url: 'https://stream.twitter.com/1.1/statuses/sample.json', :headers => {:Authorization => %Q(OAuth ****************************)} )
end
end
答案 0 :(得分:0)
因为Twitter是&#34;流媒体&#34;数据并未关闭连接,您的RestClient
请求未结束且您的show
操作已暂停,而不是&#34;结束&#34;。因此,rails无法继续并呈现默认的main/show.html.erb
页面。
因此,您可能希望查看ActionController::Streaming
类,看看是否可以重写视图和HTTP调用以使用它。或者,使用非流API边缘会更容易。
此外,你正在做的事情似乎更适合javascript。您可能希望使用Twitter的官方Javascript API来执行所有身份验证和状态流。