Twitterのリストにユーザーを追加できない

2017-01-13

Tweepy を使ってリストにユーザーを追加するプログラムを書いて実行してみると,エラーが出て追加できませんでした.

色々試してみたところ,追加できるユーザーには条件があるようです.

ソースコード

# -*- coding: utf-8 -*-
import tweepy

consumer_key = 'consumer keyの値'
consumer_secret = 'consumer secretの値'
access_token = 'access tokenの値'
access_token_secret = 'access token secretの値'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

api.add_list_member(screen_name='追加するユーザー', slug='リスト名', owner_screen_name='自分')

こんな感じでコーディングします.引数の順番を間違えると,エラーが出ます.

You must specify either a list ID or a slug and owner.
code: 112

ID などを利用したい場合など,詳しい使い方は tweepy の公式ページより GitHub を参照したほうがわかりやすいです.

エラーメッセージ

You aren't allowed to add members to this list.
code: 104

的なことを言われます.

ぐぐってもほとんど出てこなかったので,片っ端から色々試して原因を探ります.

リストにメンバーを追加する権限がありません,という内容になってますが API はちゃんと使えているので,認証できていないわけではありません.

リストの公開・非公開設定も変更しましたが,エラー内容は変わりませんでした.

追加できるユーザーと追加できないユーザー

となると,リストに追加しようとしているユーザーの性質に起因するとしか考えられず...案の定,ユーザーにはリストに追加できない条件があることが分かりました.

追加できないユーザーとは,ブロックされているユーザーとフォロー申請中の鍵付きユーザー

後者は見落としていました...

同じ非公開アカウントでも,フォロー許可を得たユーザーは追加できます.

フォロー申請が受理されるまでは鍵付きですから,考えてみれば当たり前ですが,コーディングしていると案外気づかないものですね.