M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2011年10月 1日 17:38

昨日あたり(2011-9-30)から急にTwitter Streaming APIが不調になったがSSLでつなぐようにすればOK

このエントリーをはてなブックマークに追加 mixiチェック

Twitter Streaming APIで遊んでいるのですけれども、昨日あたりから、ストリームが流れてこなくなったので、原因を調べたら、

Streaming API turning SSL only on September 29th | Twitter Developers [dev.twitter.com]

とあって、SSLで接続せいということなのでした。

今までのサンプルでは、AnyEvent::Twitter::Stream を使っていたのですが、これソースを読むとわかるのですが、

our $STREAMING_SERVER  = 'stream.twitter.com';
our $USERSTREAM_SERVER = 'userstream.twitter.com';
our $PROTOCOL          = $ENV{'ANYEVENT_TWITTER_STREAM_SSL'} ? 'https' : 'http';
our $US_PROTOCOL       = 'https'; # for testing
...
    my $uri;
    if ($method eq 'userstream') {
        $uri = URI->new("$US_PROTOCOL://$USERSTREAM_SERVER/2/user.json");
    }else{
        $uri = URI->new("$PROTOCOL://$STREAMING_SERVER/1/statuses/$method.json");
    }

userstreamメソッドという自分のタイムラインのストリームを接続するときは前からSSL接続されていたのですけれども、サンプルで使っていたsampleメソッドというパブリックのストリームを間引きして取得する指定では、何もしなければSSL接続ではない普通のHTTP接続になっていました。

というわけで、

AnyEvent::Twitter::Stream - search.cpan.org

によると、環境変数ANYEVENT_TWITTER_STREAM_SSLに1をセットすれば、User Stream以外でもSSL接続が強制されるということで、bashでは、

$ export ANYEVENT_TWITTER_STREAM_SSL=1

こんな感じでOKとなりました。

SSLにした結果どれだけCPUが持っていかれるかはわかりませんけれども、そんな大層なことしていないので問題ないのかな。

投稿 大野 義貴 [Web] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3726

タイトルのとおり、ソース見ると一目瞭然な話で、 http://cpansearch.perl.org/src/MIYAGAWA/AnyEvent-Twitter-Stream-0.21/lib/AnyEvent/Twitter/Stream.pm our $STREAMING_SERVER = 'stream.twitter.com'; our $USERSTREAM_SERVER = 'userstream.twitter.com'; our $PROTOCOL = $ENV{'ANYEVENT_... 続きを読む

コメントする