こんにちは。コンです。
最近Pythonを使ってtwitter botを作成したときに困った内容を書きます。
困った内容というのが
twitterの情報を取り扱うPythonライブラリのtweepyがバージョンが変わってattributeの書き方が結構変わったらしく
その解決方法を日本語で書いている文があまりなかったため
ここにメモ書きで書いていきます。
タイトルのエラーと格闘して作ったプログラムについてはこちら
解決方法の参考になると思います。
目次
AttributeError: ‘API’ object has no attribute ‘me’
エラーが出たのは以下の文
import tweepy
consumer_key = 'hogehoge'
consumer_secret = 'hogehoge'
access_token_key = 'hogehoge'
access_token_secret = 'hogehoge'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)
#エラーが発生したところ(自身のユーザーidを文字列で取得したかった)
my_user_id = api.me().id_str
どうやら自分のユーザーidを取得する書き方が変わったらしい。
公式ドキュメントを確認すると、api.verify_credentials()でユーザー情報を取得するようになったみたい。
なのでエラーが発生した文を
api.verify_credentials().id_str
に変更すると同じことができる。
‘API’ object has no attribute ‘search’
目的のツイートを探す書き方も変わったみたいでした。
keyword =["hogehoge", "hogehoge2"]
for q in keyword:
#エラーが出た文(countの数だけ検索結果を表示)
search_results = api.search(q=q, count=maxTimeLine)
apiは上の段落で書いたコードのapiを指しております。
正しくは下のように書くそう
search_results = api.search_tweets(q=q, count=maxTimeLine)
searchに関する公式ドキュメントはここを参照してください!
‘API’ object has no attribute ‘followers_ids’
フォロワーとフォローに関する書き方も昔と変わったみたい。
#フォロワー数を格納するリストを用意
follower_list = []
#エラーした文(ユーザ情報からフォロワー数を取得、格納)
follower_list = api.follower_ids(my_user_id)
これもapiは上の段落で書いたコードのapiを指しております。
これもフォロワーに関する公式ドキュメントを確認すると
#ユーザ情報からフォロワー数を取得、格納
follower_list = api.get_follower_ids()
で実行可能になります。
‘API’ object has no attribute ‘friends_ids’
フォロワーの書き方が変わっていたら、自分のフォローしている人の書き方も変わったらしい。
以下がエラー文
#フォロー数を格納するリストを用意
friend_list = []
#ここでエラー発生(ユーザ情報からフォロー数を取得、格納)
friend_list = api.friends_ids(my_user_id)
これもフォローに関する公式ドキュメントから
friend_list = api.get_friend_ids()
で実行可能に。
おわりに
tweepyについて日本語で書いた記事があんまりなかったので
ここにまとめました。
参考になれば嬉しいです。