倭マン's BLOG

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

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

今回は UserMethods インターフェースに定義されているメソッドの締めくくり(記事一覧)。 残っているメソッドは次の3つ:

public interface UserMethods{
    ...
    // おすすめの取得
    ResponseList<Category> getSuggestedUserCategories()
    ResponseList<User> getUserSuggestions(String categorySlug)
    ResponseList<User> getMemberSuggestions(String categorySlug)
}

「おすすめ」に関連するメソッドです。

サンプル・コード

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

import twitter4j.*

def twitter = new TwitterFactory().getInstance()

// おすすめカテゴリを取得
twitter.getSuggestedUserCategories().each{ Category category ->
    println "$category.name : $category.slug"
}

// おすすめユーザーを取得
twitter.getUserSuggestions('jalist-8').each{ User user ->
    println user.screenName
}

// おすすめユーザーを取得
twitter.getMemberSuggestions('jalist-8').each{ User user ->
    println user.screenName
}
  • getSuggestedUserCategories() メソッドは特に問題はないと思います。
  • getUserSuggestions(), getMemberSuggestions() メソッドに渡す引数はカテゴリーを指定する文字列です。 これはカテゴリーの名前とは違って、以下で見る Category オブジェクから getSlug() メソッドで取得できる文字列です。 上記サンプルでは文字列を直接指定していますが、大抵は Category オブジェクトから取得すればいいかと思います。
  • getUserSuggestions() メソッドと getMemberSuggestions() との違いは・・・イマイチわかりません。 返される User のリストは同じこともあれば、違っていることもあります。 twitter.com の「おすすめユーザー」 → 「カテゴリを確認する」から取得できるおすすめカテゴリのユーザーは getMemberSuggestions() で返されるユーザーとは常に一致しているようです。

処理のイメージ図


getSuggestedUserCategories()

getMemberSuggestions()
getUserSuggestions()

twitter のサイト上では


getSuggestedUserCategories() メソッドが返す「おすすめカテゴリ」は、twitter.com から以下のようにして取得できます:



また、getMemberSuggestions() メソッドが返す「おすすめユーザー」は、以下で取得できるユーザーリストと同じようです:


関連クラス


今回出てきた型は

  • twitter4j.Category インターフェース

です。

Category インターフェース

Category インターフェースの型定義は以下のようになっています:

package twitter4j;

public interface Category{
    String getName();
    int getSize();
    String getSlug();
}
  • getName() メソッドは twitter.com などで表示される名前を返します。
  • getSize() メソッドはこのカテゴリに分類されているユーザー数を返します。
  • getSlug() メソッドはこのカテゴリを指定する文字列(getUserSuggestions(), getMemberSuggestions() メソッドに渡す文字列)を返します。


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

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