27290


あるユーザーが自分をフォローしているかどうか手っ取り早く調べる方法って無いでしょうか？

公式の資料によると、`users`オブジェクトの`following`プロパティで自フォローされているか調べられます。  
この値が`true`だったら自分をフォローしていると判断できるし、`friendships/create`でフォローした際のレスポンスを見れば良いので検証が出来てとても楽です。  
ただ、 **非推奨と書かれている** ため使用を躊躇します。  
<https://dev.twitter.com/overview/api/users>

> Nullable. Perspectival. Deprecated. When true, indicates that the
> authenticating user is following this user. Some false negatives are
> possible when set to “false,” but these false negatives are increasingly
> being represented as “null” instead. See Discussion.

それ以外の方法だと、`friends/ids`か`friends/list`を使う方法が考えられそうですが、これだと15分で15回しかリクエスト出来ませんし、フォローが数万人いるユーザーがrest
apiでフォロー一覧を取得した場合、かなりの時間が掛かります。最高でも75000人以上だと時間を分けて検証しなければならなくなります。

それに、次々とフォローしていくような処理の場合、その都度フォローリストを更新するか、又は取得したフォローリストを書き換えて管理しなければならなくなります。

他に自分をフォローしているか手っ取り早く調べる術はないでしょうか？


CC BY-SA 3.0
2016-07-02T12:08:28.680
27272
2016-07-04T16:45:10.543
2016-07-04T16:45:10.543
784
7966
question
php twitter oauth
TwitterのREST APIで、あるユーザが自分をフォローしているかどうかを調べる方法は？


実際に利用したことがないのですが、`friendship/lookup`で、あるユーザ（100人までまとめて指定可能）と自分の関係を参照できるようです。

<https://dev.twitter.com/rest/reference/get/friendships/lookup>

ユーザごとに、connectionsに以下の値の配列が入っているので、

  * following
  * following_requested
  * followed_by
  * none
  * blocking
  * muting

この中のfollowed_byがあるか否かをチェックすれば、対象のユーザが自分をフォローしているかどうかが分かりそうです。

別の方法としては、`followers/list`で自分の全フォロワーのIDリストを配列に変換しておき、(PHPであれば)
in_array()などでチェックしていく方法もあります。毎回APIを叩く必要もありませんし、素直なやり方ではあると思いますが、ご懸念の通り手元のリストを管理する必要は出てきます。

なお、Userオブジェクトのfollowingプロパティは、"indicates that the authenticating user is
following this user"と書かれているので、恐らく目的のステータスとは逆で「自分がその人をフォローしているか否か」だと思われます。


CC BY-SA 3.0
2016-07-03T05:56:41.690
27290
2016-07-03T05:56:41.690
784
27272
answer