昨日あたり(2011-9-30)から急にTwitter Streaming APIが不調になったがSSLでつなぐようにすればOK
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が持っていかれるかはわかりませんけれども、そんな大層なことしていないので問題ないのかな。
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/52880558
この記事へのトラックバック一覧です: 昨日あたり(2011-9-30)から急にTwitter Streaming APIが不調になったがSSLでつなぐようにすればOK:
» Twitter Streaming APIのSSL接続強制後にでたAnyEvent::Twitter::Stream 0.22ならANYEVENT_TWITTER_STREAM_SSL=1は必要ない
from M.C.P.C.
タイトルのとおり、ソース見ると一目瞭然な話で、 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_... 続きを読む
受信: 2011/10/07 23:22:47

![すぐ解決!DTPトラブル対策ブック―最強最後のOS9(+OSX)ガイド [単行本]](http://ec2.images-amazon.com/images/I/51895BQKEPL._SL500_AA208_.jpg)









