0

TwitterのストリーミングAPIから私のレールアプリでデータを取得しようとしています。私は自分自身のモジュールを作成しました。twitter Authorization Headです。私は認可を受けることができますが、私は応答を戻していません...すべて私が参照してくださいpending状態(私はそのストリーミングと接続が閉じていないと推測している)の要求です。ストリーミングAPIから取得したレスポンスの印刷を開始できるように、私の下のコードには何ができますか?Railsでストリーム配信されていない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

Twitterの接続を閉じ、データを「ストリーミング」とされていないので、あなたのRestClient要求が終了されていないと、あなたのshowアクションが存在しないと「仕上げ」にぶら下がっています。したがって、レールはデフォルトのmain/show.html.erbページを表示し続けることができません。

したがって、ActionController::Streamingクラスを調べて、ビューとHTTPコールを書き換えて利用できるかどうか確認してください。または、非ストリーミングAPIエッジを使用する方がはるかに簡単です。

また、あなたがやっていることは、javascriptに適しているようです。すべての認証とステータスストリームを行うには、Twitterの公式Javascript APIを使用することができます。

+0

ちょっと@Uzbekjon ..私は 'render stream:true'でも試してみました。しかし、運がない。どのような例を指摘しても、コードに微調整してもいいですか? –

+0

'stream:true'の追加だけではありません。あなたもビューを変更する必要があります。私の答えのリンクは説明し、例を提供します。ノンストリーミングAPIエッジに固執することをお勧めします。 – Uzbekjon

+0

初心者の質問には申し訳ありませんが、非ストリーミングAPIエッジは何ですか?それへのリンク?あるいは、あなたはREST APIのように言及していますか? –

関連する問題