倭マン's BLOG

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

むしろ Twitter4J で twitter を勉強してみる (4) : User インターフェース, TwitterResponse インターフェース

今回は、今後重要になってきそうな型を少し詳しく見ていきます(記事一覧)。 見ていく型は次の2つのインターフェースです:

  • twitter4j.User インターフェース
  • twitter4j.TwitterResponse インターフェース

一応、どちらも前回出てきましたね。

User インターフェース


twitter4j.User インターフェースtwitter ユーザーを表す型です。 型定義はこんなの(JavaDoc):

public interface User extends java.lang.Comparable<User>, TwitterResponse, java.io.Serializable{ ... }

User インターフェースも TwitterResponse インターフェース を継承しているんですね。 ユーザー名をクリックしたときの応答として返されたりするんでしょうか。

さて、以下では User インターフェースから取得できるプロパティを見ていきます。 User インターフェースも前回見た Status インターフェース同様、immutable を想定して設計されているようです。 したがって、プロパティといってもそれに対応する getter メソッド(もしくは boolean 値の場合 isXxxx() メソッド)があるだけです。 以下、いくつかクラス図のようなものを書いてますが、メソッドでなくプロパティなのは単純に字数とスペースの省略のためです。

User インターフェースのプロパティはたくさんあるので、勝手に分類して見ていきましょう:

  • ユーザー情報
  • プロフィール
  • デザイン
  • 公開情報
  • その他

ユーザー情報

ユーザー情報は

から閲覧できます(自分のものだけですが)。 こんなページです:





ここから設定できるプロパティには以下のものがあります:

プロパティ名 備考
name String 名前(漢字、スペース OK)
screenName String ユーザー名
lang String 言語選択
translator boolean 翻訳者
timeZone String タイムゾーン
utcOffset int タイム ゾーンの UTC オフセット*1
geoEnabled boolean ツイートに位置情報を追加する
showAllInlineMedia boolean ???
followRequestSent boolean ???
protected boolean ???

いくつか、たぶんこの分類だろうけどよくわからん、ってのがありました。 ??? のやつ。

プロフィール

プロフィールはユーザー情報と同サイトの「プロフィール」タブから閲覧できます:

これに関係するプロパティは

プロパティ名 備考
profileImageURL URL
profileImageUrlHttps URL アイコン
location String 場所
URL URL ウェブ
description String 自己紹介

「名前」はユーザー情報で書いたので、表では省略。

デザイン

デザインは「デザイン」タブから。


↓背景画像を変更↓

↓デザインと色を変更する↓


プロパティは "profile" から始まるものです。 ただし、profileImageURL, prifileImageURLHttps は「プロフィール」で見ました。

プロパティ名 色の設定箇所
profileUseBackgroundImage boolean 背景画像を使うかどうか
profileBackgroundImageUrl String
profileBackgroundImageUrlHttps String 背景画像の URL
profileBackgroundTiled boolean 「背景画像をタイルする」かどうか
profileBackgroundColor String 「背景」の色
profileTextColor String 「テキスト」の色
profileLinkColor String 「リンク」の色
profileSidebarFillColor String 「サイドバー」の色
profileSidebarBorderColor String 「サイドバーの輪郭」の色

色は文字列 (java.lang.String) 型ですが、文字列の内容は16進数の数値です。 HTML 等で使える名前付き色ではないもよう。

公開プロフィール

公開プロフィールは

  • http://twitter.com/#!/《ユーザー名》

でアクセスできるサイトです。 見た目はこんなの:


ここに表示されている「フォローしている」数や「フォローされている」数を取得できるメソッドも定義されています。 プロパティ形式で書くと下表の通り:

プロパティ名 取得できる数
statusesCount int Tweets
favouritesCount int お気に入り
friendsCount int フォローしている
followersCount int フォローされている
listedCount int リスト

ユーザー情報のページにて、ツイートプライバシーの箇所で「ツイートを非公開にする。」にチェックを入れると、公開プロフィールのページに「リクエスト」という項目が表示されるようですが、ここでは考慮してません。 プロパティの followerRequestSent がそれに関連するものかと思いますが・・・

その他

その他のプロパティ。

プロパティ名 備考
id long ユーザーの ID
createdAt Date ユーザーの作成日時
status Status ユーザーの現在のステータス
contributorsEnabled boolean ??? contributors 関連の何か
verified boolean ??? 本人確認とかかな?
accessLevel
rateLimitStatus
int
RateLimitStatus
TwitterResponse から継承したプロパティ

TwitterResponse インターフェース


twitter4j.TwitterResponse インターフェースtwitter の応答を表す型です。 このインターフェースを拡張している型には以下のようなものがあります:

  • Status ・・・ ステータス : StatusMethods
  • User ・・・ ユーザー(情報)
  • IDs ・・・ ID を表す long 値のリスト(配列)
  • AccountSettings
  • AccountTotals
  • DirectMessage
  • PagableResponseList<T>
  • ProfileImage
  • RelatedResults
  • Relationship
  • ResponseList<T>
  • SavedSearch
  • SimilarPlaces
  • Trend
  • TwitterAPIConfiguration
  • UserList

ResponseList, IDs, ResponseList, PagableResponseList は継承関係があるのでクラス図を描いておきます:


CursorSupport インターフェースは TwitterResponse とは継承関係はありませんが、IDs と PagableResponseList が拡張しています。
TwitterResponse は前回扱った Status インターフェースや今回扱った User インターフェースは TwitterResponse を拡張しています。 他にも TwitterException クラスも TwitterResponse インターフェースを実装しているんですね。 今後見ていく Twitter API で、これらの応答を返すメソッドが出てくるんでしょう。

TwitterResponse インターフェースには2つのメソッドのみ定義されています:

メソッド名 返り値 備考
getAccessLevel int 返されうる値は TwitterResponse に定義されている定数
getRateLimitStatus twitter4j.RateLimitStatus Twitter REST API の rate limit status だそうデス


getAccessLevel() メソッドで返される値は TwitterResponse インターフェースに定義されている以下の定数のみです:

定数名 備考
NON
READ 読み込みのみ
READ_WRITE 読み書きのみ
READ_WRITE_DIRECTMESSAGES 読み書き、ダイレクトメッセージにアクセス可

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

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

*1:グレゴリオ標準時 (GMT) からのズレ。 日本だと +9時間 = +32400秒。