色聴者判定テスト > Twitter4j逆引きリファレンス【使い方 やりたいことから見つける】
Twitter4j逆引きリファレンス【使い方 やりたいことから見つける】
やりたいことからTwitter4jのメソッドを見つけるリファレンスです。
名前がややこしい機能のみを紹介しています。
基本的な機能(ツイートする、DMを送る、等)を知りたい場合は、
Twitter4j公式ページを見てください。
このページでは、Twitter4jをGoogle App Engineで利用する状況を想定しています。
GAEではThreadクラスが使えないので、
基本的にシングルスレッドを想定した内容になっています。
マルチスレッドの例も知りたい方は、@ts_3156にお気軽にリプライください。
要望があるようでしたらマルチスレッドの場合の解説も作ります…!
3/4 TODO
英語版のページも作ってという要望あり
本人の認証が必要な方法、不要な方法の両方を載せる
全部のサンプルコードを載せる
参考になるリンク
このページで紹介していないTwitter4jのメソッドも知りたい場合は、
以下のページを見てください。
対応しているツイッターAPIも一覧で見れます。
Twitter4jがサポートしているツイッターAPI一覧
Twitter4jのJavaDocを日本語訳したページもあります。
英語が苦手な人はどうぞ。
陽昇れども地の底に光届かず Twitter4jの使い方
ツイッターAPIの公式リファレンスです。
右側に一覧が載っています。
Twitter API Documentation
Twitter4jを使ってOAuthを使う方法の解説は、以下のページに詳しく書いてあります。
OAuthに限らず、twitter4jの使い方が全般的に載っていてすごく便利です。
陽昇れども地の底に光届かず GAE Twitter4JJavaによるbotの作り方
このページの知識を利用して、えごったーというWebアプリケーションを作っています。
りむった・りむられたユーザ一覧が分かりますよ。
えごったー
このページの情報で分かりづらい点がありましたら、
@ts_3156にお気軽にリプライください(^-^)
予備知識
userIdとは、各ユーザに割り当てられた数字のIDのことです。
screenNameとは、@で始まる名前のことです。
どのメソッドも、一回で全部のデータを取得することはできません。
paging、cursorの値を利用して、途中からデータを取得することになります。
明記されていない場合、本人の認証は不要です。
本人の認証が不要な方法も極力載せています。
Twitter4j逆引き項目一覧
あるユーザの見ているタイムラインを取得したい
ResponseList<Status> getHomeTimeline(Paging paging)
あるユーザがログインした状態で見れるタイムラインを取得します。
あるユーザが行った公式RTも含まれます。
1回の呼び出しで20ツイートずつ取得できます。
※本人の認証が必要です
一回の呼び出しで100ツイートずつ取得する方法もあります。
getFriendsStatuses()でフォローしているユーザ一覧を取得すると、
ユーザオブジェクトの中に最新のツイートも含まれています。
このデータを利用すれば、少ないAPI呼び出しでたくさんのツイートを取得できます。
この方法を利用すれば、本人の認証がなくてもタイムラインを再現することができます。
いいことずくめのようですが、この方法には以下の問題点もあります。
1. 時系列順に自分でソートする必要がある
2. APIのバグ?で最新のツイートではないときがある
ResponseList<Status> getFriendsTimeline(Paging paging)
このメソッドは、getHomeTimeline()から「あるユーザが行った公式RT」を除外したものです。
このメソッドは後方互換性のために残してあり、将来のバージョンのAPIではなくなる可能性があるそうです。
あるユーザのツイート一覧を取得したい
ResponseList<Status> getUserTimeline(long userId, Paging paging)
ResponseList<Status> getUserTimeline(String screenName, Paging paging)
1回の呼び出しで、20ツイートずつ取得できます。
本人の認証がある場合のみ、非公開にしているツイートも取得できます。
あるユーザの非公開ツイート一覧を取得したい
本人の認証がある場合のみ、一つ上の項目の方法で取得できます。
認証がない場合に取得する方法はありません。
外部のサービスを使えば取得できることもあります。
もしかしたら、Twilogで見れるかもしれません。
あるユーザへのメンション一覧を取得したい
ResponseList<Status> getMentions(Paging paging)
※本人の認証が必要です
メンションはリプライを含んでいます。
メンションとは、「@ユーザ名」が含まれたツイートのことです。
リプライとは、「@ユーザ名」から始まるツイートのことです。
認証のないユーザへのメンション一覧を取得するには、
ツイートの日本語検索を利用するのが一番簡単だと思います。
ツイッター公式の検索は、日本語の検索での精度がとても低いです。
おすすめは、yatsツイッター検索です。
私が知る限り一番精度の高いツイッター日本語検索です。
あるユーザがツイートしたメンション一覧を取得したい
そういうAPIは今のところ存在しません。
あるユーザのツイートを取得し、ユーザ名が含まれるものだけを正規表現で見つけるのが最善だと思います。
あるユーザのお気に入り登録されたツイート一覧を取得したい
そういうAPIは今のところ存在しません。
ふぁぼったーやFavstarは、
定期的にクローリングすることでこのデータを集めています。
あるユーザが公式RTしたツイート一覧を取得したい
ResponseList<Status> getRetweetedByMe()
※本人の認証が必要です
ResponseList<Status> getRetweetedByUser(String screenName, Paging paging)
※本人の認証は不要です
あるユーザのフォローしているユーザが公式RTしたツイート一覧を取得したい
ResponseList<Status> getRetweetedToMe()
※本人の認証が必要です
ResponseList<Status> getRetweetedToUser(String screenName, Paging paging)
※本人の認証は不要です
あるユーザが公式RTされたツイート一覧を取得したい
ResponseList<Status> getRetweetsOfMe()
※本人の認証が必要です
本人の認証がない場合は、下記のgetRetweetedBy()を何回か呼び出す必要があります
あるツイートを公式RTしたユーザ一覧を取得したい
ResponseList<User> getRetweetedBy(long statusId)
ツイート一つずつに対して呼び出すことで、そのツイートを公式RTしたユーザ一覧が取得できます。
公式RTしたユーザが0でないなら、公式RTされたと判断できます。
getRetweetedBy()は詳しいユーザ情報が返ってくるのですが、
userIdを知りたいだけだったらgetRetweetedByIDs(long statusId)もあります。
たぶんこっちの方が早く結果が返ってくるんだと思います。
userId、screenNameだけを知っているユーザの詳しい情報を取得したい
User showUser(String screenName)
User showUser(long userId)
指定したユーザの詳しい情報が返ってきます。
userId、screenNameだけを知っている複数ユーザの詳しい情報を取得したい
ResponseList<User> lookupUsers(long[] userIds)
ResponseList<User> lookupUsers(String[] screenNames)
指定したユーザの詳しい情報が返ってきます。
今まで(2010年9月くらい?)はshowUser()で一人ずつチェックするしかなかったと思うのですが、 いつの間にこんなに便利なメソッドが...!
フォローしているユーザ一覧を取得したい
PagableResponseList<User> getFriendsStatuses(long cursor)
新しい方から100人を1回の呼び出しで取得できます。
フォローしているユーザが多い場合は何回も呼び出す必要があります。
※本人の認証は不要です
サンプルコード
一度に一つのURLへしかアクセスできない環境で フォローしているユーザの詳しい情報一覧を取得するには、 このメソッドを何回か呼び出すのが最速です。
フォローしているユーザのuserIdを一度に大量に取得したい
IDs getFriendsIDs(long cursor)
あるユーザがフォローしているユーザのIDを1回の呼び出しで5000件取得できます。
screenNameが知りたい場合は、lookupUsers()を100人分ずつ呼び出す必要があります。
同時に複数のURLへアクセスできる環境で フォローしているユーザの詳しい情報一覧を取得するには、 このメソッドを呼び出した後にlookupUsers()を何回か呼び出すのが最速です。
フォロワー一覧を取得したい
PagableResponseList<User> getFollowersStatuses(long cursor)
新しい方から100人を1回の呼び出しで取得できます。
フォロワーが多い場合は何回も呼び出す必要があります。
※本人の認証は不要です
一度に一つのURLへしかアクセスできない環境でフォロワーの詳しい情報一覧を取得するには、 このメソッドを何回か呼び出すのが最速です。
フォロワーのuserIdを一度に大量に取得したい
IDs getFollowersIDs(long cursor)
あるユーザのフォロワーのIDを1回の呼び出しで5000件取得できます。
screenNameが知りたい場合は、lookupUsers()を100人分ずつ呼び出す必要があります。
同時に複数のURLへアクセスできる環境でフォロワーの詳しい情報一覧を取得するには、 このメソッドを呼び出した後にlookupUsers()を何回か呼び出すのが最速です。
あるユーザが所有しているリスト一覧を取得したい
PagableResponseList<UserList> getUserLists(String listOwnerScreenName, long cursor)
1回の呼び出しで20個のリストを取得できます
本人の認証がある場合のみ、非公開のリストも一緒に取得できます。
あるユーザが所有している非公開リスト一覧を取得したい
本人の認証がある場合は、すぐ上の項目の方法で取得できます。
認証がない場合に非公開リストを取得する方法は存在しないです。
あるリストの詳細情報を取得したい
UserList showUserList(String listOwnerScreenName, int id)
あるユーザが登録されているリスト一覧を取得したい
PagableResponseList<UserList> getUserListMemberships(String listMemberScreenName, long cursor)
あるユーザがフォローしているリスト一覧を取得したい
PagableResponseList<UserList> getUserListSubscriptions(String listOwnerScreenName, long cursor)
あるリストをフォローしているユーザ一覧を取得したい
PagableResponseList<User> getUserListSubscribers(String listOwnerScreenName, int listId, long cursor)
AがBをフォローしているかどうか知りたい
boolean existsFriendship(String screenNameA, String screenNameB)
複数のユーザについてチェックする時は、あるユーザのフォロー・フォロワー一覧を取得しておいてから、Javaプログラムの中でチェックしていくと早いと思います。
AとBがお互いにフォローしているのか知りたい
Relationship showFriendship(long sourceId, long targetId)
Relationship showFriendship(String sourceName, String targetName)
お互いにフォローしているのかどうかが分かります。
sourceがtargetをブロックしているかどうかも分かります。
AがBをブロックしているかどうか知りたい
Relationship showFriendship(long sourceId, long targetId)
Relationship showFriendship(String sourceName, String targetName)
すぐ上の項目と同じメソッドです。
Aがブロックしているユーザ一覧を取得したい
ResponseList<User> getBlockingUsers()
※本人の認証が必要です
本人の認証がない場合にブロックしたユーザ一覧を知る実践的な方法としては、「およそ同じ時間にリムーブした、リムーブされたが起きた時は、ブロックしている」という決め打ちがあります。
Aがブロックされたユーザ一覧を取得したい
そういうAPIは今のところ存在しません。
ブロックされたユーザ一覧を知る実践的な方法としては、「およそ同じ時間にリムーブした、リムーブされたが起きた時は、ブロックされている」という決め打ちがあります。
あるユーザがリムーブしたユーザ一覧を取得したい
そういうAPIは今のところ存在しません。
えごったーは、定期的にクローリングすることでこのデータを集めています。
ちなみに、えごったーを使えば誰の情報でも取得できます。
あるユーザがリムーブされたユーザ一覧を取得したい
そういうAPIは今のところ存在しません。
えごったーは、定期的にクローリングすることでこのデータを集めています。
ちなみに、えごったーを使えば誰の情報でも取得できます。
フォローをリクエストされているユーザ一覧を取得したい
IDs getIncomingFriendships(long cursor)
※本人の認証が必要です
フォローのリクエストをしているユーザ一覧を取得したい
IDs getOutgoingFriendships(long cursor)
※本人の認証が必要です
質問お待ちしてます!
このページの情報で分かりづらい点がありましたら、
@ts_3156にお気軽にリプライください(^-^)