0

Я пытаюсь извлечь данные из Twitter Streaming API в моем приложении rails, и я создал свой собственный модуль, который дает мне twitter Authorization Head. Я могу получить разрешение, но я не получаю ответ обратно ... все, что я вижу, это запрос в pending состоянии (я предполагаю, что его потоковая передача и соединение не закрываются). Что я могу сделать с моим ниже кодом, чтобы я мог начать печатать ответ, как я получаю от Streaming API?Streaming API с Rails не может получить потоковые данные

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

Поскольку Твиттер «потоковый» данные и не закрывает соединение, ваш RestClient запроса не закончился, и ваша show действия висит там, а не «отделку». Таким образом, рельсы не могут продолжаться и отображать страницу по умолчанию main/show.html.erb.

Итак, вы можете изучить класс ActionController::Streaming и посмотреть, можете ли вы переписать свои представления и HTTP-вызов, чтобы использовать его. Или, было бы намного проще использовать не-потоковый интерфейс API.

Кроме того, то, что вы делаете, похоже, лучше подходит для javascript. Возможно, вы захотите использовать официальный Javascript Twitter для всех аутентификаций и потоков состояния.

+0

hey @Uzbekjon ..i попытался использовать поток рендеринга: true. Но не повезло. Можете ли вы указать какой-либо пример или изменить его код –

+0

Речь идет не только о добавлении 'stream: true'. Вы также должны изменить свои взгляды. Ссылка в моем ответе объясняет и дает примеры. Я бы порекомендовал просто придерживаться не-потокового интерфейса API. – Uzbekjon

+0

Прошу прощения за вопрос новичков, но что такое непокрывающий интерфейс API? любая ссылка на него? Или вы просто упоминаете, как REST api? –

 Смежные вопросы

  • Нет связанных вопросов^_^