理系学生日記

おまえはいつまで学生気分なのか

LDR の discover API は subscribe_id を返すときと返さないときがある

LDR にはサイトの URL をパラメータとして渡すことでそのサイトの Feed の URL を返す API (/api/feed/discover) がある。
この API を叩くことによって、feed の URL はもちろん、ページのタイトルだったり、そのページの Feed を LDR に登録している人数だったりが JSON 形式で返されるため、それをラッピングするクラスをとりあえず作ってみているが、返される(可能性のある)パラメータの中に subscribe_id がある。

package WebService::LivedoorReader::Discovery;

use Moose;

with 'WebService::LivedoorReader::Role::Subscribe';

has 'link'              => ( is => 'ro', isa => 'Str' );
has 'subscribe_id'      => ( is => 'ro', isa => 'Str' );
has 'title'             => ( is => 'ro', isa => 'Str' );
has 'feedlink'          => ( is => 'ro', isa => 'Str' );
has 'subscribers_count' => ( is => 'ro', isa => 'Int' );

__PACKAGE__->meta->make_immutable;
no Moose;

sub core { WebService::LivedoorReader::Core->instance; }

1;

テストしながら気付いたのだが、自分が LDR で購読していないサイトの URL をパラメータにして /api/feed/discover を叩くと、subscribe_id が返却されない。subscribe_id は「購読している Feed の ID」を意味しているものみたいだから、そうなっているのも当然なのだが、それに気付くまでに随分と時間をムダにした。もともとムダに休日を過ごしているから、無問題という説もある。