Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

pythonで自分のtweet/埋め込みコードを取得する

More than 3 years have passed since last update.

はじめに

Twitterで自分がつぶやいているtweet/その埋め込みコードを取得するスクリプトを記載したいと思います。
自分のTweetやシェアした情報を外部アプリに載せたい時に使えます。

Python Twitter Tools

こちらの記事に、python twitter toolsの使い方を記載しています。同じように

t = Twitter(auth=OAuth(
        <access token>,
        <access token secret>,
        <consumer key>,
        <consumer secret>
    ))

でTwitterクラスを作ります。
このクラスを使って色々とTwitterのデータを取ることができるようになります。

自分のtweetを取得

Twitter APIの GET statuses/user_timelineで自分のtweetを取得することができます。Python Twitter Toolsでは以下のように書くことができます。

tweets = t.statuses.user_timeline(count= 200,exclude_replies = True, include_rts = False)

GETの際のパラメータ指定はこちらを参照してください。
ここでは、tweetを200個取得・リプライ/リツイートを除外しています。

埋め込みコードの取得

tweetの埋め込みコードを取得するためにはGET statuses/oembedを叩きます。
しかしこれを叩く際にはtweetのurlが必要となります。
なので上のコードを使ってtweetのurlを取得して、それをGET statuses/oembedに貼り付けましょう。
コードは以下のようになります。

今回は"fizzbuzz"という文字列を含むtweet、本日tweetされた、という2つの条件を満たしてるtweetのurlを取得しています。
ちなみにtweetのurlはhttps://twitter.com/<your twitter id>/<tweetのid>で構成されます。

def get_today_ids(t):
    target_ids = []
    for card in t.statuses.user_timeline(count= 200,exclude_replies = True, include_rts = False):
        if is_today_tweet(card) and ("fizzbuzz" in card['text']):
            target_ids.append(card['id'])

    return target_ids

def get_today_embed():
    my_url = "https://twitter.com/<twitter id>/status/";
    embed_list = []
    for id in get_today_picks_ids(t):
        embed_list.append(t.statuses.oembed(url=my_url + str(id))['html'])

    return embed_list

これで条件を満たしたtweetの埋め込みコードが取得できました。

終わりに

今回取得できたデータを元に、tweetの管理を別のアプリで実装できるようにしたいと思います。

参照

Twitter API: Get Tweet timelines
Twitter API: retrieve and engage with Tweets

hirohuntexp
好きなことは読書/ゲーム/映画/ジム通い Qiitaはやったことを保管しておくのに使いたい。
https://twitter.com/hirohuntExp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away