1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonコードを実行してTwitter(X)に投稿する(無料アカウント)、2025年3月時点で成功確認

Last updated at Posted at 2025-04-18

TwitterからXに変わり、APIを使用する多くのアカウントが凍結されて、APIが使えなくなってしまった…と思っていましたが、PythonコードからAPIを使用して自動投稿が出来る!…と今更分かりました。実際に動作したコードを記載します。

結果

Pythonコードを実行してTwitter(X)に投稿、2025年APIで確認OK。

①始めに認証情報(必要なAPIキー・トークン)を取得

スクリプトで自動投稿を行うには、
まず始めに、下記サイトから認証情報(必要なAPIキー・トークン)を取得します。
https://developer.x.com/en/portal/dashboard

Twitter Developer Portal にログインします。
 ↓
認証設定画面を表示
作成したアプリの詳細ページに入り、左側またはページ下部にある「User authentication settings」セクションを探し、「Set up」ボタンをクリック。
 ↓
各項目を設定

  • App permissions(アプリの権限)
    通常は「Read and write」を選択。
    ※ツイートの投稿や削除などを行う場合にはこの設定が必要。
  • Type of App(アプリの種類)
    「Web App, Automated App or Bot」を選択。

画面右下の「Save」ボタンをクリックして設定を保存。
 ↓
「Keys and tokens」タブを表示して
アプリの詳細ページ内にある「Keys and tokens」タブをクリック。
 ↓
下記の認証情報を取得する

ここで取得するAPIキー・トークン情報は以下の通り。

  • API Key(Consumer API Key)
  • API Key Secret(Consumer API Secret)
  • Access Token および Access Token Secret

取得する認証情報の例

ここで取得された認証情報の例: ※下記のAPIキー・トークンはサンプル(無効なもの)。

API Key(Consumer API Key)
g267JDyR4Y2eQBlTzmoesqwov ←25字

API Key Secret(Consumer API Secret)
vWRaj99OfP4pwag15A99dlLGt7UUfQCFU0GeOP5kcYavmfFfOD ←50字

Access Token
2755679135552414320-EbRoCP7pqVoIuiiAtVPyubD375Xznd ←19+30字

Access Token Secret
4gy9vWDSGvBUbH9erAZbY85060hXYyZiRpEavZhGsUYfc ←45字

②tweepyライブラリをインストール

必要なライブラリを下記でインストール。

pip install tweepy

③単純な投稿のみを行うテストコード (動作確認OK)

自動投稿が成功したコード:

# Twitter(X)にPythonコードから投稿、2025年APIでの確認

# assume: pip install tweepy


# 結果: 投稿に成功、確認25/03/11

# 下記サイトから認証情報を取得: 
# https://developer.x.com/en/portal/dashboard
# ↓
# API Key(Consumer API Key)
# g267JDyR4Y2eQBlTzmoesq... ←25字
# API Key Secret(Consumer API Secret)
# vWRaj99OfP4pwag15A99dlLGt7UUfQCFU0GeOP5kcYavmfF... ←50字
# Access Token
# 2755679135552414320-EbRoCP7pqVoIuiiAtVPyubD375X... ←19+30字
# Access Token Secret
# 4gy9vWDSGvBUbH9erAZbY85060hXYyZiRpEavZhGsU... ←45字

import os
import tweepy

# sec: config

def main():
    
    # 環境変数から認証情報を取得
    CONSUMER_KEY = "g267JDyR4Y2eQBlTzmoesq..."
    CONSUMER_SECRET = "vWRaj99OfP4pwag15A99dlLGt7UUfQCFU0GeOP5kcYavmfF..."
    ACCESS_TOKEN = "2755679135552414320-EbRoCP7pqVoIuiiAtVPyubD375X..."
    ACCESS_TOKEN_SECRET = "4gy9vWDSGvBUbH9erAZbY85060hXYyZiRpEavZhGsU..."

    # 認証情報が全て取得できているか確認
    if not all([CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET]):
        print("認証情報が不足しています。環境変数を確認してください。")
        exit(1)

    # TweepyのClientオブジェクトを作成
    try:
        client = tweepy.Client(
            consumer_key=CONSUMER_KEY,
            consumer_secret=CONSUMER_SECRET,
            access_token=ACCESS_TOKEN,
            access_token_secret=ACCESS_TOKEN_SECRET
        )
        print("Twitter APIクライアントの作成に成功しました。")
    except Exception as e:
        print(f"Twitter APIクライアントの作成に失敗しました: {e}")
        exit(1)

    # ツイートの投稿
    try:
        response = client.create_tweet(text="test post 250311")
        print(f"ツイートが投稿されました: https://twitter.com/user/status/{response.data['id']}")
    except Exception as e:
        print(f"ツイートの投稿に失敗しました: {e}")


# sec: entry

if __name__ == "__main__": main()

これだけ。

参考: 生成AIに聞く

PythonコードからAPIを使用して自動投稿する方法を、生成AI(ChatGPT)に聞いて、初めて「自動投稿が出来る!」…と今更分かりました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?