暇だったらからtwitterの可視化でもしようと思ってid/screen_nameからfriendsとfollowers取得出来るようにNet::Twitter書き換えた
56,57c56,58
< my ( $self ) = @_;
< my $req = $self->{ua}->post($self->{apiurl} . "/followers.json");
---
> my ( $self , $id ) = @_;
> my $p = ( defined $id ) ? "?id=$id" : "";
> my $req = $self->{ua}->post($self->{apiurl} . "/followers.json" . $p);
63,64c64,66
< my ( $self ) = @_;
< my $req = $self->{ua}->post($self->{apiurl} . "/friends.json");
---
> my ( $self, $id ) = @_;
> my $p = ( defined $id ) ? "?id=$id" : "";
> my $req = $self->{ua}->post($self->{apiurl} . "/friends.json" . $p);
んだけどどうも動かないんだよね。試しに友達のIDでやってみたら取得できたんだが、その後どんな値を引数に入れても返り値が変わらない。自分のfriendsも取得できない。キャッシュされてる?
ていうわけで進展したら報告します。てかちょっとだれかデバッグしてくれ。
(追記)
ごめん仕様書ちゃんと読んでなかった。
本家API仕様書
Parameters:
id. Optional. The ID or screen name of the user for whom to request a list of friends. Ex: http://twitter.com/statuses/friends/12345.json or http://twitter.com/statuses/friends/bob.rss
と言う訳で最終的なパッチはこれ。
63,64c63,65
< my ( $self ) = @_;
< my $req = $self->{ua}->post($self->{apiurl} . "/friends.json");
---
> my ( $self, $id ) = @_;
> my $path = ( defined $id ) ? "/friends/$id.json" : "/friends.json";
> my $req = $self->{ua}->post($self->{apiurl} . $path);
どうやら任意の人物のデータを取得出来るのはfriendsだけみたい。隠れパラメータあるのかもだけど指定の仕方が分からん。
(さらに追記)
show(あるユーザのステータス取得)してくれるモジュール無かったんで書き足したよ。
sub show {
my ( $self, $id ) = @_;
return if not defined $id;
my $req = $self->{ua}->post("http://twitter.com/users/show/$id.json");
return ($req->is_success) ? JSON::Any->jsonToObj($req->content) : undef;}
適当な所にいれておいてちょ。