Python で副業(?) Twitter API を使ってみる 〜その7:Python のサンプルコードで OAuth 1.0a 〜

IT

今回は Python のサンプルコードを使用して、OAuth 1.0a 方式で Twitter API を使用しています。

Twitter API で OAuth 1.0a が必要となるのは、OAuth 2.0 では許可されていない書込み/削除といった更新処理を含む API を利用する場合です。Github に用意されているサンプルコードも、そういった API に対して OAuth 1.0a での実装が公開されています。

事前準備(権限設定)

そのため、先ずは App に対して更新処理を許可するよう設定を変更します。
Developer Portal のプロジェクト → App で設定用のアイコンをクリックして下さい。

「App settings」アイコンをクリックする様子

「App Permissions」が「Read Only」となっていることを確認した場合は、「Edit」ボタンをクリックして下さい。設定画面で「Read and Write」を選択し、「Save」→「Yes」の順にボタンをクリックします。
既に「Read and Write」または「Read and Write and Direct message」となっている場合、この手順を飛ばして下さい。

「App permissions」の「Edit」ボタンをクリックする様子
Permission 設定を「Read and Write」に変更して確定する様子

Python のサンプルプログラムを取得、修正

前記事に書いたように、サンプルプログラムは Twitter API Referece の「Quick Start」タブから確認できます。今回は Twitter API を使って新規ツイートを投稿するので、以下のリンクを辿りました。
「API reference index」(こちら
 →「Manage Tweets | POST /2/tweets」(こちら
  →「Quick Start」(こちら
   →「Twitter API v2 sample code」(こちら
    →「Manage-Tweets」(こちら
     →「create_tweet.py」(下記)

https://github.com/twitterdev/Twitter-API-v2-sample-code/blob/main/Manage-Tweets/create_tweet.py
サンプルプログラムをコピーしている様子

プログラムをコピーしたら、VS Code 上に「create_tweet.py」ファイルを作成して、貼り付けます。
※必要なライブラリなどはインストール済みであることが前提です。未インストールの人は前記事等を参考にしてインストールをお願いいたします。(こちら

サンプルプログラムを VS Code 上に貼り付けた様子

プログラムを確認すると、下記の指示がありますのでそれぞれ対応します。

  • 「CONSUMER_KEY」と「CONSUMER_SECRET」を環境変数に設定する
    ※それぞれ App の「API Key」と「API Secret」です
  • ツイートの内容に書き換える

プログラム中のツイート内容を書き換えて保存したら(下図①)、前記事と同様、仮想環境「Python_de_Twitter_API」を有効化(下図②)、環境変数の設定(下図③④)を行います。
※環境変数の設定の際、Mac または Windows をお使いの方は “export” の代わりに “set” を使用して下さい。(参考

export 'CONSUMER_KEY'='<your_consumer_key>'
export 'CONSUMER_SECRET'='<your_consumer_secret>'
仮想環境「Python_de_Twitter_API」を有効化し、CONSUMER_KEY、CONSUMER_SECRET を環境変数に設定した様子

今回のプログラムは 3-legged OAuth flow を使っていますので、ローカルの HTTP サーバを起動しておいて下さい。詳しくは前記事をご確認下さい。

python -m http.server 8080

プログラムの起動と、結果の確認!

では、プログラムを実行します!(下図⑤)
すると「ここに進め」と URL が表示されます。(下図⑥)

python Python_de_Twitter_API/create_post.py
プログラムを実行した様子

ブラウザで URL を開き、Twitter アカウント情報(ID、パスワード)を入力したら「連携アプリを認証」ボタンをクリックします。(下図⑦⑧⑨)

Twitter アカウント情報(ID、パスワード)を入力して「連携アプリを認証」ボタンをクリックする様子

認証が成功すると自動でリダイレクトます。URL 中の「oauth_verifier」の値をコピーします。(下図⑩)

「oauth_verifier」をコピーしている様子

VS Code に戻って、取得した値を貼り付けて確定します。(下図⑪)
すると Twitter から成功(Response code: 201)が返ってきます。(下図⑫)

PIN Code(oauth_verifier)を貼り付け、ツイート結果が表示された様子

Twitter にログイン後、ホーム画面を確認するとサンプルプログラムから投稿されたツイートが確認できます。(下図⑬)

サンプルプログラムからツイートした結果を確認する様子

以上で Python のサンプルプログラムを使用した OAuth 1.0a や Twitter API の確認を終わります。実際のアプリケーションでは、取得したトークンをデータベースに保存するなどして、毎回、認証しないようにする等の対応が必要になると思いますが、今回はそこまで実施しませんのでご了承下さい。

Twitter API シリーズもここまでで終了となります。ありがとうございました。

コメント

タイトルとURLをコピーしました