今回は 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 Permissions」が「Read Only」となっていることを確認した場合は、「Edit」ボタンをクリックして下さい。設定画面で「Read and Write」を選択し、「Save」→「Yes」の順にボタンをクリックします。
既に「Read and Write」または「Read and Write and Direct message」となっている場合、この手順を飛ばして下さい。
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」(下記)
プログラムをコピーしたら、VS Code 上に「create_tweet.py」ファイルを作成して、貼り付けます。
※必要なライブラリなどはインストール済みであることが前提です。未インストールの人は前記事等を参考にしてインストールをお願いいたします。(こちら)
プログラムを確認すると、下記の指示がありますのでそれぞれ対応します。
- 「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>'
今回のプログラムは 3-legged OAuth flow を使っていますので、ローカルの HTTP サーバを起動しておいて下さい。詳しくは前記事をご確認下さい。
python -m http.server 8080
プログラムの起動と、結果の確認!
では、プログラムを実行します!(下図⑤)
すると「ここに進め」と URL が表示されます。(下図⑥)
python Python_de_Twitter_API/create_post.py
ブラウザで URL を開き、Twitter アカウント情報(ID、パスワード)を入力したら「連携アプリを認証」ボタンをクリックします。(下図⑦⑧⑨)
認証が成功すると自動でリダイレクトます。URL 中の「oauth_verifier」の値をコピーします。(下図⑩)
VS Code に戻って、取得した値を貼り付けて確定します。(下図⑪)
すると Twitter から成功(Response code: 201)が返ってきます。(下図⑫)
Twitter にログイン後、ホーム画面を確認するとサンプルプログラムから投稿されたツイートが確認できます。(下図⑬)
以上で Python のサンプルプログラムを使用した OAuth 1.0a や Twitter API の確認を終わります。実際のアプリケーションでは、取得したトークンをデータベースに保存するなどして、毎回、認証しないようにする等の対応が必要になると思いますが、今回はそこまで実施しませんのでご了承下さい。
Twitter API シリーズもここまでで終了となります。ありがとうございました。
コメント