1

私はTitaniumを初めて使用し、(さらに別の)Twitterクライアントを構築することから始めました。私が遭遇した問題は、TwitterのストリーミングAPIを使用したいということであり、TitaniumDesktop内でそれを行うための最良の方法を理解するのに苦労しています。

これが私が見るオプションです:

  1. ストリーミングAPIは使用しないでください。機能しません。
  2. ストリーミング応答をサポートするhttpclientに接続するPythonブリッジを構築します(Streaming APIに必要であり、接続を閉じることはありません)。そのクライアントに、ツイートが届いたときにフォーマットして出力するJavascriptメソッドに応答を配信させます。(ここでの問題:必要なPythonライブラリをバンドルするにはどうすればよいですか?)
  3. Titanium SDK1.1に同梱されているJavascriptHttpClientを、私が知らない巧妙な方法で使用してください。
  4. ストリーミング応答をサポートするHttpClientに付属しているTitaniumSDKの1.2.0-RC2リリースを使用します。リリースノートには、ストリーミングサポートがStreamingAPIで動作するのに十分かどうかを判断するための情報はほとんどありません。
  5. Flash仲介を介したストリーミングサポート用のjavascriptライブラリであるtwstreamerを使用します。FlashがTitaniumDesktop内でうまく機能しないというバグレポートを見たことがありますが、間違っていることが証明されることを望んでいます。
  6. 私がまだ考えていない別の方法。

これをどのように機能させることができるかについてのあらゆる種類の巧妙なアイデアと、今後のヒントを期待しています。読んでくれてありがとう!

4

2 に答える 2

1

私はTitaniumにまったく精通していませんが、彼らのドキュメントを見ると、Titanium.Processを使用して、ストリーミング応答を処理できるものをフォークするのが最善の策と思われます。ここには軽量のオプションがたくさんありますが、ユーザーストリームを使用する場合は、OAuthとSSLをサポートするオプションが必要になることに注意してください。

于 2012-01-01T19:30:53.697 に答える
1

これを行う方法は次のとおりです(多くのテストの後):

var xhr = Titanium.Network.createHTTPClient();
xhr.open("GET", "https://stream.twitter.com/1/statuses/filter.json?track=<Your-keyword-to-track>", true, '<Your-twitter-nickname>', '<Your-twitter-password>');
xhr.send();

var last_index = 0;
function parse() {
    var curr_index = xhr.responseText.length;
    if (last_index == curr_index) return; // No new data
    var s = xhr.responseText.substring(last_index, curr_index);
    last_index = curr_index;
    console.log(s);
}

var interval = setInterval(parse, 5000);
setTimeout(function(){
    clearInterval(interval);
    parse();
    xhr.abort();
}, 25000);
于 2012-01-06T00:50:09.257 に答える