我正在尝试从我的rails应用程序中的推特流API中获取数据,我已经创建了我自己的模块,它提供了twitter Authorization Head。我可以获得授权,但我得不到回复...我所看到的是处于pending状态的请求(我猜是因为它的流和连接没有关闭)。我可以对下面的代码做些什么,这样我就可以开始打印从流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发布于 2016-05-19 03:52:58
因为推特正在“流式传输”数据,并且没有关闭连接,所以您的RestClient请求没有结束,并且您的show操作在那里挂起,而不是“完成”。因此,rails不能继续呈现默认的main/show.html.erb页面。
因此,您可能希望研究一下ActionController::Streaming类,看看是否可以重写视图和HTTP调用来利用它。或者,使用非流式API边缘会容易得多。
而且,你所做的似乎更适合javascript。您可能希望使用Twitter的官方Javascript api来执行所有身份验证和状态流。
https://stackoverflow.com/questions/37308351
复制相似问题