tweepyライブラリでTwitterの自動アンフォローを実装する

スポンサーリンク

API権限を確認する

APIのデフォルト権限は、DM送信の権限が与えられていません。

Read+Write+DirectMessagesに権限を変更して、API鍵を再発行してください。

ライブラリを読み込む

import tweepy
import time as t

APIインスタンスを作成する

CK="xxxxx" #Consumer Key
CKS="xxxxx" #Consumer Key Secret
AT="xxxxx" #Access Token
ATS="xxxxx" #Access Token Secret

#APIインスタンス作成関数
def connect_api():
  auth = tweepy.OAuthHandler(CK, CKS)
  auth.set_access_token(AT, ATS)
  api = tweepy.API(auth)
  return api

api=connect_api() #APIインスタンスの作成

アンフォロー処理と例外処理を実装する

twitter_id="xxxxx" #自身のtwitterIDを入力(@マークなし)
 
friends=api.friends_ids(twitter_id) #フォローユーザの取得
followers=api.followers_ids(twitter_id) #フォロワーの取得
 
for f in friends: #フォローユーザ分だけループ
  if f not in followers: #フォローユーザがフォロワーに含まれていないなら
    print(str(api.get_user(f).name)+"@"+str(api.get_user(f).screen_name)+"をアンフォローします。")

    try:
      api.destroy_friendship(f)
    except tweepy.TweepError as e:
      print( "TweepError " + str(e) )
      t.sleep(15 * 60) #15分待機
    except tweepy.RateLimitError as e:
      print( "RateLimitError " + str(e) )
      t.sleep(15 * 60) #15分待機
    except Exception as e:
      print( "Exception " + str(e) )
      t.sleep(10) #10秒待機
    else:
      print("アンフォロー完了")
      t.sleep(10) #10秒待機
  else:
    print(str(api.get_user(f).name)+"@"+str(api.get_user(f).screen_name)+"は相互フォローされています。")

print("end")

コメント

タイトルとURLをコピーしました