2
1

More than 1 year has passed since last update.

Tweepyなら簡単に初心者でもTwitterAPIを利用できました(Pythonで)

Posted at

今後、TwitterAPIを活用する業務を行いたいのと、StripeやSpreadsheetのAPIをぼちぼち使用しはじめたので、学習を兼ねてTwitterデベロッパーアカウントを申請しました。

公式のドキュメントをみると、HTTP通信について理解してリクエストヘッダーやエンドポイントを記載しなれければならないようでした。
上記のワードは、言葉だけは知っていますが、きちんと学習していないものばかりでした。
また、アプリをOAuth認証しなければtweetの取得などが行えないのですが、その認証の仕方がなかなか理解できなくて困りました。
とにかくまずはTweetの取得をしたい!動いているところをみたい!と思い簡単な方法を調べました。

色々調べた結果、PythonではTweepyというライブラリが有名なようでした。
早速、pipを通してインストールし、Tweepy公式で最初の一歩を試しました。
https://docs.tweepy.org/en/stable/index.html
以下が公式HPにのっている最初の一歩(Get Started)のコードです。(少しわかりやすいように修正)

import tweepy

auth = tweepy.OAuth1UserHandler(
   yourapi_key, yourapi_secret, youraccess_token, youraccess_token_secret

)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

ここで気を付けるポイントがあります。
一つ目は暗号鍵です。Get started上ではOAuth認証に使う鍵がconsumer_key等となっていますが、今はTwitter公式での呼び名がapi_keyに統一されています。
他の記事でもcomsumer_keyと記載されていることが多いので読み替えます。初心者はこういうものによく躓きます。
二つ目は、デベロッパーポータル上でアプリの権限をreadから read and write等に変更し、そのあとで鍵を生成しておくことです。
私はこれを怠り先に鍵を生成してしまったため、後でアプリの設定から権限を変更しても、エラーが返ってきてしまいました。
あとでよく見たらデベロッパーポータルで表示されている鍵の下に小さく権限がreadのみの時に作成されました。と注意書きがありました。

このコードをpyhon上で実行すると簡単にOAuth認証をしてくれて、自分のホーム画面上の最新20tweetを取得し表示してくれます。httpメソッドなどのややこしいことを考えずにひとまずtweetを取得できます。
またとってきたtweetは、投稿日時や場所、id等の情報を辞書配列のようにもっているので,
例えば以下のようにするとtweetのidが表示できます。

for tweet in public_tweets:
    print(tweet.id)

tweetのidがわかれば、tweepyの便利な関数でretweetやいいねができるようになります。 

api.create_favorite(id_str)

上記はAPI v1用の関数で v2からはClient.like()でいいねを行うようなのですが、引数 selfが不足していますとエラーがでてその解決方法が分かりませんでした。
APIのバージョンを確認してくださいと公式には書いてあったのですが。

他にも、get_favorites()で自分がいいねをしたツイートを見返すことなどができます。通常のtwitterクライアントよりも、自分の見たい情報が簡単に閲覧できると感じました。
また、公式の説明も平易な英語で書かれておりわかりやすいと思いました。
これで色々遊んでいこうと思います。

慣れたらこの記事を参考に基本を学んでいきたいと思います。
https://qiita.com/mpyw/items/b59d3ce03f08be126000
長文乱文失礼しました。

Wesołych Świąt Bożego Narodzenia

2
1
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
2
1