質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1202閲覧

pythonのTweepy仕様変更によるエラー

amenitero

総合スコア1

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/06/05 18:35

前提

pythonのtweepyが4.0以降メソッドなどに変更が加わり、以前使用していたコードが使えなくなりました。

こちらは自分のアカウントにフォロバを返していないアカウントを古い順からフォローを外すコードになります。

実現したいこと

エラーを出さず使用したいです。
どこをどのように直せば問題なく使用可能でしょうか?
分かる方教えていただけると助かります。

発生している問題・エラーメッセージ

followers = api.get_follower_ids(SCREEN_NAME) line 33, in wrapper return method(*args, **kwargs) TypeError: get_follower_ids() takes 1 positional argument but 2 were given

該当のソースコード

python

1import tweepy 2 3keys = dict( 4screen_name = '@ユーザーネーム', 5consumer_key = '× × × ', 6consumer_secret = '× × × ', 7access_token = '× × × ', 8access_token_secret = '× × × ', 9) 10 11SCREEN_NAME = keys['screen_name'] 12CONSUMER_KEY = keys['consumer_key'] 13CONSUMER_SECRET = keys['consumer_secret'] 14ACCESS_TOKEN = keys['access_token'] 15ACCESS_TOKEN_SECRET = keys['access_token_secret'] 16 17auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 18auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) 19api = tweepy.API(auth) 20 21followers = api.get_follower_ids(SCREEN_NAME) 22friends = api.get_friend_ids(SCREEN_NAME) 23 24cnt = 0 25for f in friends [::-1]: 26if cnt >= 1: 27break 28if f not in followers: 29cnt += 1 30print("ID:{}のフォローを解除しました。".format(api.get_user(f).screen_name)) 31api.destroy_friendship(f)
### 補足情報(FW/ツールのバージョンなど) tweepyAPIメソッド (https://docs.tweepy.org/en/latest/api.html?highlight=get_follower_ids#tweepy.API.get_follower_ids)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

各メソッドについて、明示的にキーワード引数を指定する必要があります。

py

12followers = api.get_follower_ids(screen_name=SCREEN_NAME) 3friends = api.get_friend_ids(screen_name=SCREEN_NAME) 4 5cnt = 0 6for f in friends [::-1]: 7 if cnt >= 1: 8 break 9 if f not in followers: 10 cnt += 1 11 print("ID:{}のフォローを解除しました。".format(api.get_user(user_id=f).screen_name)) 12 api.destroy_friendship(user_id=f)

注:※元のコードはインデントがない為こちらで勝手に推測してインデントを付けましたが、期待通りに動くことは保証できません。
(特にcntの所の考え方:現状だと1人解除したら以降解除処理はなされないように思われます。)


投稿2022/06/05 21:26

編集2022/06/05 21:37
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amenitero

2022/06/06 07:04

教えていただいたコードを使用したところ、無事起動することができました。古い順からにもなっています。 この度は迅速且つ丁寧な回答をしてくださり大変助かりました。回答くださりありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問