Twitterへの自動ツイートプログラム作成手順 2019年最新版
・TwitterのAPI利用の全体的な手順を知りたい人
・pythonを使って自動ツイートプログラムを作成したい人
はじめに

毎日の更新をいちいち自分で呟くの面倒くさいから自動化したい…
Twitterへの自動ツイートに関して、Twitter社の公開APIに内容を投げればすぐに使えるものかと思っていたのですが、思いの外手順が複雑だったため、それらをまとめてみました。
なお、今回そのプログラムを実装するにあたり、参考にしたサイトがありますので、途中途中でリンクを貼りながら説明していきたいと思います。
まずはじめに、Twitterへの自動ツイートプログラムの全体的な流れを載せておきます。

手順としては大きく2つに分ける事ができて、ブラウザでの作業としての「開発者アカウント申請」と「プログラム実装」があります。そのそれぞれでの手順に関して説明します。
開発者アカウント申請
Twitter社のAPIを利用してツイートする流れとして、開発者アカウントを作成し、アクセストークンを取得して、OAuthプロトコルを使って、APIにリクエスト送信する(ツイートする)必要があります。
Twitter社のAPIに現在持っている通常のTwitterユーザの情報を付与してツイート内容をPOSTしてやれば使えるものかと思っていたのですが、もう少し複雑だったようです。
というわけで、少し面倒くさい開発者アカウント申請の流れについて説明していきます。
①Twitterアカウント作成
自動ツイートしたいアプリのユーザーアカウントを作成してください。私のサイトの場合、「BOATRACE_AI_LAB」がそのユーザーとなります。
この記事を読んでいる方は既にそういったアカウントを持っているかと思いますので、作成方法については割愛します。
②開発者アカウント申請
これは、開発者用に新規にアカウント申請をするのではなく、通常のTwitterアカウントにAPIを利用するための開発者権限を付与するための申請です。
これは、このサイトを参考に申請しました。
③Appの作成
開発者アカウントの申請が通ったら、アクセストークンを取得するための「App」を作成します。
「App」とは、アプリケーションの事です。実際のアプリケーションというよりは、アプリケーションに振り分ける権限の管理単位のニュアンスが近いと思います。
ここで、アクセストークンという耳慣れない言葉が出てきました。
アクセストークンとはOAuth(オーオース)というプロトコルで使用する文字列です。OAuthの説明はこのサイトが分かりやすかったです。プロトコルの公式サイトはここ。
アクセストークンとは、簡単に説明すると、アクアスしてきたユーザがある実行権限を持っているかを確認するための認証キーです。
Twitter社のAPIが権限認証のプロトコルとしてOAuthを使っているため、このアクセストークンが必要になるのです。
私のサイトの場合は、「BOATRACE_AI_LAB」ユーザで(Twitter以外の、ログインを必要としない)アプリケーションからツイートをする権限を持ったアクセストークンが必要です。そのアクセストークンを取得するためのAppを作成します。
Appの作成方法についてもこのサイトを参考にしました。
④キーやアクセストークンの取得
ブラウザでの作業としては、ここが最後になります。
「App」が作成できたら、下記画面で「Details」をクリックします。

そして、「Keys and tokens」のタブをクリックすると、OAuthに必要な4つのキーについて確認できるはずです。
※「Access token & access token secret」が表示されていない場合は、「Create」ボタンがあると思うので、それをクリックすることでアクセストークンを得られます。

ここで、下記の4つの文字列を得られますが、このそれぞれの役割について、私の解釈を交えながら解説します。この内容について間違っている場合は、コメント欄でご指摘いただければと思います。
- Cosumer API Key
- Cosumer API Key ( secret )
- Access token
- Access token ( secret )
まず、「Cosumer API Key」は、この「App」のIDに当たります。OAuth的にいうと、権限IDでしょうか。
私のサイトの場合は、「BOATRACE_AI_LAB」ユーザでアプリケーションからツイートをする権限のIDです。
そして、「Access token」はこのIDに対するに対する資格情報のようです。詳しくは公式HPに記載があります。
「Cosumer API Key ( secret )」「Access token ( secret )」 はそれぞれのパスワードみたいですね。はじめはSSHなどの公開鍵認証方式で使われるような鍵かと思っていましたが、暗号化はHTTPSで担っているから問題ないというなんでしょうか? 詳しい方いましたらコメントください。。
プログラム実装
ここでは、pythonを使ってOAuthのオブジェクトを作成し、POST通信でプログラムからツイートさせる方法について解説します。
といっても、とても簡単です。下記のプログラムを実装すれば大丈夫です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from requests_oauthlib import OAuth1Session # OAuthにアクセストークン等を埋め込むための変数 CK = "ここに「Cosumer API Key」" CS = "ここに「Cosumer API Key ( secret )」" AT = "ここに「Access token」" ATS = "ここに「Access token ( secret )」" # OAuthプロトコルを持ったセッションオブジェクトを作成 twitter = OAuth1Session(CK, CS, AT, ATS) url = "https://api.twitter.com/1.1/statuses/update.json" #プログラムからツイートする際のURL(API) tweet = "テスト" # ツイート内容 params = {"status" : tweet} # POST リクエスト req = twitter.post(url, params = params) if req.status_code == 200: print("Succeed!") else: print("ERROR : %d"% req.status_code) |
“requests_oauthlib"のモジュールは下記コマンドでインストールできます。
1 |
pip install requests_oauthlib |
このプログラムを実行すれば、Appを取得したユーザで"tweet"の内容がツイートされているはずです。
まとめ
今回の記事をまとめます。
・Twitterへの自動ツイートは、Twitter社のAPIを利用する
・Twitter社のAPIにはアクセストークンが必要であり、その取得は開発者アカウント申請をする必要がある
・Twitter社のAPIはOAuth(オーオース)プロトコルが使われている
・プログラム実装では、OAuthプロトコルを持ったセッションオブジェクトを作成し、APIにPOSTリクエストを送信すれば、プログラムからツイートできる
ディスカッション
コメント一覧
まだ、コメントがありません