0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【tweepy】ツイート結果(TweepError)の取得

Last updated at Posted at 2021-06-11

はじめに

 tweepyのupdate_status()やupdate_with_media()でツイートしたときに,エラーならエラーと表示されるが成功したときに何も出ないので,成功したら成功したと表示させたい。

実装

 エラーのステータスはtweepy.TweepError.reasonに入ってるらしい。

try:
    api.update_status(tweet)
except tweepy.TweepError as e:
    print(e.reason)

って感じにすると

[{'code': 187, 'message': 'Status is a duplicate.'}]

って返ってくるからキーを指定すればcodeだけ取り出せそうだけどどうやらこれ丸ごとstringらしいので,エラー文をそのまま条件に使用して下のような感じで実装(するのが手っ取り早そう)。
 エラーになる要因はたいていAPIのリクエスト制限に引っかかるか重複したツイートしてるか(テスト投稿でやっちゃいがち)だと思うのでその二つは表示できるようにしてそれ以外のエラーはそのままって感じで。

try:
    api.update_status(self.tweet)
except tweepy.TweepError as e:
    if e.reason == "[{'code': 88, 'message': 'Rate limit exceeded'}]":
        print("エラー;リクエスト上限に達しました。15分間待ってください")
    if e.reason == "[{'code': 187, 'message': 'Status is a duplicate.'}]":
        print("エラー:ツイートが重複しています")
    else:
        print(e)
else:
    print("ツイート成功")

tkinterでGUIにする場合はprint部分をtk.Labelのtextveriable=に使用してるtk.StringVar().setするよう置き換えればOK

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?