予定では Twitter4J - 「コードサンプル」で取り上げられているものから攻めていこうと思ってましたが、今回はちょっと変更して、前回少しだけ出てきた UserMethods インターフェースを見ていきます(記事一覧)。
UserMethods インターフェース
UserMethods はユーザー情報を保持する User オブジェクト、もしくはそのリスト (ResponseList) を取得する Twitter API を持っています。 定義はこんなの:
package twitter4j.api; public interface UserMethods{ // ユーザー情報の取得 User showUser(String screenName) User showUser(long userId) ProfileImage getProfileImage(String screenName, ProfileImage.ImageSize size) // ユーザーの検索 ResponseList<User> lookupUsers(String[] screenNames) ResponseList<User> lookupUsers(long[] ids) ResponseList<User> searchUsers(String query, int page) // おすすめの取得 ResponseList<User> getUserSuggestions(String categorySlug) ResponseList<User> getMemberSuggestions(String categorySlug) ResponseList<Category> getSuggestedUserCategories() }
今回はユーザー情報の取得メソッドを見ていきます:
- showUser(String)
- showUser(long)
- getProfileImage(String, ProfileImage.ImageSize)
サンプル・コード
UserMethods に定義されているユーザー情報取得メソッドの使い方は StatusMethods と大して変わりません:
@Grab('org.twitter4j:twitter4j-core:[2.2.4,)') import twitter4j.* def twitter = new TwitterFactory().getInstance() // ユーザー名から User オブジェクトを取得 def me = twitter.showUser('waman10da') println me.id // ユーザー ID から User オブジェクトを取得 def me2 = twitter.showUser(122348882L) println me2.description // 指定したユーザーのプロフィール画像を取得 def image = twitter.getProfileImage('waman10da', ProfileImage.NORMAL) println image.URL
処理のイメージ図
getProfileImage() メソッドは引数にユーザー名と画像サイズ(ProfileImage に定義されている定数 BIGGER, NORMAL, MINI を指定可)を渡します。 返される ProfileImage オブジェクトからは画像 URL を表す String オブジェクトが取得できますが、これは指定したユーザー名に対応する User オブジェクトの getProfileImageURL() メソッドで返される URL の文字列表現と同じです*1。
関連クラス
今回扱ったメソッドで新たに出てきた型は以下の2つ:
- twitter4j.ProfileImage インターフェース
- twitter4j.ProfileImage.ImageSize クラス
ProfileImage インターフェース
ProfileImage インターフェースはプロフィール画像を表す型です。 これは TwitterResponse インターフェース(こちら参照)を拡張しています:
package twitter4j; public interface ProfileImage extends TwitterResponse, java.io.Serializable{ String getURL(); }
定義されているメソッドは、画像の URL を表す文字列です。 java.net.URL オブジェクトではありません。 また、このインターフェースには後で見る ProfileImage.ImageSize 型の定数が3つ定義されています:
- BIGGER
- NORMAL
- MINI
これらは画像の大きさを表すクラスで、Twitter#getProfileImage() メソッドの第2引数に渡して、取得する画像のサイズを指定します。 使い方は上記サンプル・コードを参照。
ProfileImage.ImageSize クラス
ProfileImage.ImageSize クラスはプロフィール画像の大きさを指定する定数 (BIGGER, NORMAL, MINI) を定義するためのクラスです:
package twitter4j; public ProfileImage{ ... public static class ImageSize{ String getName() } }
Twitter API ポケットリファレンス (POCKET REFERENCE)
- 作者: 山本 裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2011/07/15
- メディア: 単行本(ソフトカバー)
- 購入: 3人 クリック: 247回
- この商品を含むブログ (41件) を見る
*1:User#getProfileImageUrlHttps() メソッドで返される URL の文字列表現とは違います