倭マン's BLOG

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

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

今回はユーザーリストのメンバーに関するメソッドが定義されている ListMembersMethods インターフェースを見ていきます(記事一覧)。 このインターフェースに定義されているメソッドは、指定されたユーザーリストに対するユーザーの CRUD を行うと思えばいいでしょうか(update ないけど)。

ちなみに前回やった ListMethods インターフェースにはリストのメンバーに関連するメソッド getUserListMemberships() ってのがありましたが、これは「指定したユーザーをメンバーに含むリストを返す」メソッドでした。 ユーザーリストに登録されているユーザーに関しては何の操作もできません。

ListMembersMethods インターフェース

package twitter4j.api;

public interface ListMembersMethods{

    // メンバーの追加
    UserList addUserListMember(int listId, long userId);
    UserList addUserListMembers(int listId, long[] userIds);
    UserList addUserListMembers(int listId, String[] screenNames);

    // メンバー(ユーザー)の取得
    User showUserListMembership(int listId, long userId);
    PagableResponseList<User> getUserListMembers(int listId, long cursor);

    // メンバーの削除
    UserList deleteUserListMember(int listId, long userId);
}
  • メンバーの追加には、単体追加 (addUserListMember()) と複数追加 (addUserListMembers()) が可能
  • メンバーの取得には、特定ユーザー取得 (showUserListMembership()) と全ユーザー取得 (getUserListMembers()) が可能

サンプル・コード


ではサンプル・コード。 最初の部分で前回見た ListMethods のメソッドによってユーザーリストを作成しています:

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

import twitter4j.*

def twitter = new TwitterFactory().getInstance()

def scandal = [
    'scandal_haruna',
    'scandal_tomomi',
    'scandal_mami',
    'scandal_rina'
] as String[]

def scandalList = twitter.createUserList('scandal', true, '')

Thread.sleep(3000)    // 処理完了待ち(うまくいかない可能性アリ)

// ユーザーをリストに加える addUserListMembers()
twitter.addUserListMembers(scandalList.id, scandal)

Thread.sleep(3000)    // 処理完了待ち(うまくいかない可能性アリ)

// リストのメンバーを取得する getUserListMembers()
twitter.getUserListMembers(scandalList.id, -1L).each{ User user ->
    println user.name
}

// ユーザーがリストに含まれるかどうかをチェックする showUserListMembership()
def haruna = twitter.showUser('scandal_haruna')
twitter.showUserListMembership(scandalList.id, haruna.id)
    // リストに含まれている場合は User オブジェクトを返す

try{
    def tmr = twitter.showUser('TMR15')
    twitter.showUserListMembership(scandalList.id, tmr.id)
        // リストに含まれていない場合は例外 TwitterException を投げる
    assert false

}catch(TwitterException){}

// ユーザーをリストから削除する deleteUserListMember()
twitter.deleteUserListMember(scandalList.id, haruna.id)

処理のイメージ図


addUserListMember()
addUserListMembers()

showUserListMembership()

getUserListMembers()

deleteUserListMember()

twitter のサイト上で


addUserListMember()
リストに追加したいユーザーの公開プロフィールサイトにて

getUserListMembers()


deleteUserListMember()


ユーザーの削除も「リストに追加」から。

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

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