28
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

APIキー不要のPythonのTwitter APIラッパー"twikit"の紹介

Last updated at Posted at 2024-01-31

この記事の概要

APIキーなしで利用できるPythonのTwitterAPIラッパーを作ったので紹介します。この記事を読んで使っていただけたら幸いです。
詳しい使用方法などは以下のリポジトリやドキュメントでご確認ください。

ドキュメント: https://twikit.readthedocs.io/en/latest/twikit.html

追記: 非同期に対応しました
追記: v2.0.0より同期版を廃止して非同期版のみになりました

インストール

pipを使用してインストールしてください

pip install twikit

はじめに

まずは、TwitterのAPIにアクセスするためのクライアントを定義し、アカウントにログインします。

以下は、コードの例です。

import asyncio
from twikit import Client

# 第一引数に言語を指定
client = Client('ja')

async def main():
    # アカウントにログイン
    await client.login(
        auth_info_1='email@example.com',
        auth_info_2='example_user',
        password='password0000'
    )
asyncio.run(main())

auth_info_1auth_info_2には、Twitterのアカウントに登録しているユーザー名、メールアドレス、電話番号のうち、2つを選んで指定してください。順番は自由です。

save_cookiesを使用することで、ログインした際のクッキー情報をファイルに保存することができます。

# クッキーの保存
client.save_cookies('cookies.json')

load_cookiesメソッドを使用することで、保存されたクッキー情報を読み込みむことができます。これにより、ログイン情報を再利用し、再度ログインの手続きを省略することが可能です。

# クッキーの読み込み
client.load_cookies('cookies.json')

機能例

主要な機能を紹介します。

ツイートやユーザーの検索

ツイートやユーザーをキーワードから検索することができます。
コードの例:

# ツイートの検索
# 第二引数にはTop, Latest, Mediaを指定できる
await client.search_tweet('検索クエリ', 'Top')

# ユーザーの検索
await client.search_user('検索クエリ')

ツイートの作成

画像や投票を添付することもできるので詳しくはドキュメントをご覧ください

await client.create_tweet('ツイートの本文')

トレンドの取得

第一引数にはトレンドのカテゴリーを指定できます。

# ニュースカテゴリーのトレンドを取得
await client.get_trends('news')

最後に

紹介した機能以外にも様々な機能があるのでぜひお試しください。
また、まだ開発中のため実装できていない機能もあります。ご希望の機能があれば、ぜひコメントなどでお知らせください。
GitHubでのスターをいただけると、開発への励みになります。どうぞよろしくお願いいたします。

28
19
6

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
28
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?