4
4

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 1 year has passed since last update.

Tweepyで使うTwitter API v2は、最低限しか取得しない

Posted at

概要

TweepyのAPI v2は最低限しか情報を取得しないので、*_fieldsで取得したいプロパティを指定しましょうというお話です。

ツイートを取得

ツイートの作成時間を知りたくて、いつものようにget_tweetしました。

>>> print(api.get_tweet(20).data.created_at)

None

データの取得方法

Noneって何

Noneとは🤔
ツイートの作成時間なんていう重要そうな項目、普通に考えたらないわけないので、ソースコードを見に行くことにしました。

TweepyのTweetクラスのソースコードを見ていたところ、どうやらtweet.dataで内部データを取得できるようです。
やってみましょう。

内部データを見る

>>> print(api.get_tweet(20).data.data)

{'id': '20', 'text': 'just setting up my twttr'}

なんと、idとtextしかそもそもないことがわかりました。では、created_atのようなプロパティはどこへ消えてしまったのでしょう?

ドキュメントは読んどけ

答えは公式ドキュメントに書いてありました。

get_tweet.png

tweet_fieldsですが、strlist[str]で取得したいプロパティを指定することでプロパティが帰ってくるようです。

実践

>>> print(api.get_tweet(20, tweet_fields=["created_at"]).data.data)

{'created_at': '2006-03-21T20:50:14.000Z', 'id': '20', 'text': 'just setting up my twttr'}

しっかりcreated_atが帰ってきました。

応用

>>> for status in api.get_users_tweets(783214, tweet_fields=["created_at"]).data:
...     print(str(status.id) + " : " + str(status.created_at))

1491089523291394052 : 2022-02-08 16:40:20+00:00
1491089514818846723 : 2022-02-08 16:40:18+00:00
1491085462013759491 : 2022-02-08 16:24:11+00:00
1491084952846352388 : 2022-02-08 16:22:10+00:00
1491084940624248836 : 2022-02-08 16:22:07+00:00
1491084675225427969 : 2022-02-08 16:21:04+00:00
1491084352800894978 : 2022-02-08 16:19:47+00:00
1491084344579997699 : 2022-02-08 16:19:45+00:00
1491084033874345986 : 2022-02-08 16:18:31+00:00
1491082777021792262 : 2022-02-08 16:13:31+00:00

*_fieldsは結構どこでも取得できるようです。

結論

最低限しか取得しないから、取得したいプロパティを*_fieldsで指定しよう!

4
4
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
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?