以前はTwitterでのAPI申請について書きましたが、
Xになってから色々変わっていますので、
API申請からPythonプログラムによるポストまでを改めてまとめておきます。
X APIの利用
Xアカウントが存在する状態で、まずはX APIの利用申請を行います。
難しくないので心配しなくて大丈夫です。
X API利用申請
X Developer Platformにアクセスします。
画面右上の「Developer Portal」をクリックします。
どのプランを選択するか聞かれますので、画面下部にある「Sign up for Free Account」をクリックします。
有償のBasicまたはProを選択することで、Freeだと利用することができないツイートの検索などを行うことができます。
まずは無償のFreeでいいと思います。
ポリシー同意書へのチェックが求められますが、XのデータやAPIをどんな目的で使いたいか記載する必要があります。
詳しく書く必要はなさそう(即時承認されるので)ですが、特に考えたくない人は以下を入力してくれれば大丈夫です。
I would like to use Twitter's API to automatically display articles posted on my website on my Twitter timeline. Content will be automatically displayed on Twitter's timeline about once a day. Content from Twitter will not be retrieved using the Twitter API and displayed on anything other than Twitter.
すべてのチェックボックスにチェックして、「Submit」をクリックします。
Developer Portal画面に遷移します。
ここまででX API利用申請は完了です。
次に実際にアプリケーションでAPIを使うための設定を行っています。
- 中学生、高校生向けのプログラミングスクール
- アプリ甲子園やUnityインターハイ等でのコンテスト受賞者多数
- 難関校の総合型選抜(AO入試)合格者多数
- ピッチコンテスト受賞者、起業家も輩出
APIアプリケーション設定
画面左のProjects & Appsを展開し、Default project配下のアプリを選択します。
User authentication settingsの「Set up」をクリックします。
App permissions設定画面が表示されます。
デフォルトはReadが選択されていると思いますので、「Read and write and Direct message」にチェックします。
この設定によって、これから実行するPythonプログラムがツイートの読み書きを実行できるようになります。
Readのみの場合はツイートを読むことしかできませんので、ポストをする場合はWrite権限が必要になります。
画面を下にスクロールすると、Type of App設定画面が表示されますので、「Web App, Automated App or Bot」にチェックします。
さらに画面を下にスクロールすると、App info設定画面が表示されます。
Callback URIやWebsite URLの入力が必須になりますので、「https://x.com/
」と入力しましょう。
最後に画面一番下の「Save」をクリックします。
権限変更によるアプリケーション影響が問題ないか聞かれますので、「Yes」をクリックします。
Client IDとClient Secretを提示されますが、今回のPythonプログラムでは不要なので、そのまま「Done」をクリックします。
必要な時に改めて再設定(Regenerate)できます。
Client Secretも保存するように求められますが、一旦無視して「Yes, I saved it」をクリックします。
Developer Portal画面に戻ってきますので、User authenticationが設定済みであることを確認します。
キーおよびトークンの取得
次にPythonプログラムで使用する各種キーとトークンを取得します。
「Keys and tokens」をクリックします。
まずはConsumer Keysにある「Regenerate」をクリックします。
確認画面が表示されますので、「Yes, regenerate」をクリックします。
確認画面が出てくる理由は、再設定してしまうと、今まで動いていたアプリケーションに影響を与える可能性があるためです。
API KeyとAPI Key Secretが表示されますので、「Copy」してメモ帳などに控えておきます。
一度しか表示されませんので、見逃してしまった場合は、再度Regenerateを実行すれば大丈夫です。
控え終わったら、「Yes, I saved them」をクリックします。
次にAuthentication TokenにあるBearer Tokenを「Generate」します。
先程と同様にメモ帳などにBearer Tokenを控えて、「Yes, I saved it」をクリックします。
次にAuthentication TokenにあるAccess Token and Secretを「Generate」します。
こちらも同様に、Access TokenとAccess Token Secretを「Copy」してメモ帳などに控えて、「Yes, I saved them」をクリックします。
Access Token and Secreteの生成が完了すると、読み書きの権限(ReadとWrite)が付与されていることを確認できます。
ここまでがX APIの申請からキーおよびトークンの取得になります。
おつかれさまでした。
アプリケーションからX APIを利用できる準備は整いましたので、
実際にプログラムを作っていきましょう!
- サブスクリプション型プログラミングスクール
- 入会金は0円!いつでも気軽にはじめることができる
- 月額10,780円(税込)でHTML、PHP、Javaなどのカリキュラムが学び放題
- 現役エンジニアの講師へチャット質問し放題で、未経験からスキルアップを考えている方におすすめ
ツイートをポストするPythonプログラム
Xにツイートを投稿するだけのシンプルなプログラムを作成していきます。
tweepyパッケージのインストール
tweepyパッケージを利用しますので、適宜インストールします。
自分の環境ではtweepyパッケージが古かったので、アップデートを実行しました。
$ pip install --user -U tweepy
Requirement already satisfied: tweepy in /home/c9320144/.local/lib/python3.6/site-packages (4.1.0)
Collecting tweepy
Downloading tweepy-4.6.0-py2.py3-none-any.whl (69 kB)
|################################| 69 kB 21.6 MB/s
Requirement already satisfied: requests-oauthlib<2,>=1.2.0 in /home/c9320144/.local/lib/python3.6/site-packages (from tweepy) (1.3.0)
Collecting oauthlib<4,>=3.2.0
Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB)
|################################| 151 kB 119.9 MB/s
Collecting requests<3,>=2.27.0
Downloading requests-2.27.1-py2.py3-none-any.whl (63 kB)
|################################| 63 kB 8.7 MB/s
Requirement already satisfied: charset-normalizer~=2.0.0 in /home/c9320144/.local/lib/python3.6/site-packages (from requests<3,>=2.27.0->tweepy) (2.0.7)
Requirement already satisfied: idna<4,>=2.5 in /home/c9320144/.local/lib/python3.6/site-packages (from requests<3,>=2.27.0->tweepy) (3.3)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /home/c9320144/.local/lib/python3.6/site-packages (from requests<3,>=2.27.0->tweepy) (1.26.7)
Requirement already satisfied: certifi>=2017.4.17 in /home/c9320144/.local/lib/python3.6/site-packages (from requests<3,>=2.27.0->tweepy) (2021.10.8)
Installing collected packages: requests, oauthlib, tweepy
Attempting uninstall: requests
Found existing installation: requests 2.26.0
Uninstalling requests-2.26.0:
Successfully uninstalled requests-2.26.0
Attempting uninstall: oauthlib
Found existing installation: oauthlib 3.1.1
Uninstalling oauthlib-3.1.1:
Successfully uninstalled oauthlib-3.1.1
Attempting uninstall: tweepy
Found existing installation: tweepy 4.1.0
Uninstalling tweepy-4.1.0:
Successfully uninstalled tweepy-4.1.0
Successfully installed oauthlib-3.2.2 requests-2.27.1 tweepy-4.6.0
ソースコード
こちらのプログラムでXにツイート(Hello World)をポストできます。
API_KEY,API_SECRET,BEARER_TOKEN,ACCESS_TOKEN,ACCESS_TOKEN_SECRETは、取得したキーおよびトークンを入力してください。
import tweepy
API_KEY = 'XXXXXXXXXX'
API_SECRET = 'XXXXXXXXXX'
BEARER_TOKEN = 'XXXXXXXXXX'
ACCESS_TOKEN = 'XXXXXXXXXX'
ACCESS_TOKEN_SECRET = 'XXXXXXXXXX'
client = tweepy.Client(bearer_token=BEARER_TOKEN,
consumer_key=API_KEY,
consumer_secret=API_SECRET,
access_token=ACCESS_TOKEN,
access_token_secret=ACCESS_TOKEN_SECRET)
client.create_tweet(text='Hello World')
実行結果
実行結果はこのようになります。
>>> client.create_tweet(text='Hello World')
Response(data={'id': '1846181077259616679', 'edit_history_tweet_ids': ['1846181077259616679'], 'text': 'Hello World'}, includes={}, errors=[], meta={})
Pythonプログラムを実行すると、X上に正しくポストされていることを確認できます。
このコードをスクリプト化して、cronなどでスケジュール実行できれば、自動で定期的にポストするプログラムを作成できます。
自宅PCで定期的に実行しようとすると常時起動しておかないといけないので、
サーバをレンタルすることをおススメます。
その他
Xになってから仕様が色々変わっており、FreeではX APIによるツイート検索ができなくなっています。
Freeでできるのはポストのみで、Twitter時代はできていたことができなくなっていて躓きました。
コメント