倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

むしろ Twitter4J で twitter を勉強してみる (14) : ListSubscribersMethods インターフェース

今回はユーザーリスト関連最後のインターフェース、ListSubscribersMethods を見ていきます(記事一覧)。 ListSubscribersMethods インターフェースはリストの購読に関するメソッドが定義されています。

ListSubscribersMethods インターフェース

package twitter4j.api;

public interface ListSubscribersMethods{

    // ユーザーリストを購読する
    UserList createUserListSubscription(int listId);

    // ユーザーリストの購読者を取得する
    User showUserListSubscription(int listId, long userId);
    PagableResponseList<User> getUserListSubscribers(int listId, long cursor);

    // ユーザーリストの購読を解除する
    UserList destroyUserListSubscription(int listId);
}
  • 「create」、「show」、「destroy」は UserListSubscription ですが、ユーザーリストの全購読者を取得するメソッドは getUserListSubscribers() です。
  • showUserListSubscription() メソッドの第1引数に指定したリストを第2引数に指定したユーザーが購読していない場合は TwitterException が投げられるようです。
  • getUserListSubscribers() メソッドの第2引数に渡す long 値は PagableResponseList に関連するカーソル位置です。 使い方はListMethods#getUserLists() メソッドなどと同じです(こちら参照)。

getUserListSubscribers() メソッドは「ユーザーリストを指定して、それを購読しているユーザーを返す」メソッドで、以前見た ListMethods インターフェースの getUserListSubscriptions() メソッドは「ユーザーを指定して、そのユーザーが購読しているユーザーリストを返す」メソッドです。

サンプル・コード

@Grab('org.twitter4j:twitter4j-core:[2.2.5,)')

import twitter4j.*

def twitter = new TwitterFactory().getInstance()
def waman = twitter.showUser('waman10da')
def twitterDev = twitter.getUserLists('yusukey', -1L).find{ it.name == 'Twitter-dev' }

// ユーザーリストを購読する
twitter.createUserListSubscription(twitterDev.id)

Thread.sleep(3000)    // 処理完了待ちング

// ユーザーリストの購読者を取得する
twitter.showUserListSubscription(twitterDev.id, waman.id)

// ユーザーリストの購読者全員を取得する
twitter.getUserListSubscribers(twitterDev.id, -1L).each{ println it.name }

// ユーザーリストの購読を解除する
twitter.destroyUserListSubscription(twitterDev.id)

処理のイメージ図


createUserListSubscription()

showUserListSubscription()

getUserListSubscribers()

destroyUserListSubscription()

twitter のサイト上で


createUserListSubscription()
destoryUserListSubscription()


getUserListSubscribers()


Twitter API ポケットリファレンス (POCKET REFERENCE)

Twitter API ポケットリファレンス (POCKET REFERENCE)