2019-03-21今回は、PythonのWEBフレームワークFlaskで、OAuth認証を使用したTwitter連携の方法について解説していきます。こちらの記事の続きです。独学WEB開発の壁、ログイン機能実装を突破するFlaskチュートリアル1|前提知識編OAuth認証の実装はかなり苦労しました。実は、以前にも下の記事でTweepyというライブラリを用いたOAuth認証によるTwitter連携は実装したことがあるのですが、今回は自分の勉強も兼ねて、Tweepyを使わずに作ってみました。Twitterで自動ふぁぼ、認証機能を実装してWEBアプリ化!正直Tweepyを使った認証の方が簡単だったので、今回の方法でTwitter連携がうまくできなかったという方は、Tweepyを使ってみてもいいかもしれません。余談ですが、GoogleのFirebaseの機能を使っても、シンプルに認証ができるそうです。OAuth認証について詳しく学びたい方はこちらもおすすめ。値は張りますが、Amazonのベストセラーです。セキュアな認可システムを適用するための原則と実践それでは、さっそく実装していきましょう。スポンサーリンクもくじはじめにTwitterAPIとOAuth認証Twitter認証のためのURLを取得する参考はじめにこんかい用意するものはこちら。・Python3.7・Flask1.0.2・TwitterAPIのキーTwitterAPIのキーを持っていない方は、TwitterDevelopersへの登録を先に済ませておきましょう。こちらでAPIキーとシークレットキーを取得し、CallbackURLを設定しておく必要があります。詳しくはこちらが参考になります。利用していろいろ遊んでみる必要な準備ができたら、OAuth認証についての解説にすすみます。TwitterAPIとOAuth認証TwitterAPI連携には、OAuth1.0という認証プロトコルを使用します。このOAuht認証とは、APIとクライアント間のデータのやり取りを安全に行うためのプロトコルです。リクエストトークンと認証サーバーを用いて、承認されたクライアントだけが、APIのリソースサーバーにデータを要求できるアクセストークンを入手できます。OAuth1.0のドキュメントに、わかりやすいフロー図がありましたので、貼っておきます。OAuth認証の大まかな流れは、これで理解していただけたかと思います。ここからは、TwitterAPIの公式ドキュメントを参考にしながら、頑張ってTwitter連携を実装していこうと思います。TwitterAPIドキュメントSTEP1:リクエストトークンを取得する認証の最初のステップは、リクエストトークンを取得することです。ドキュメントを参考にすると、以下のような情報を含んだHTTPリクエストを送信してOAuth接続を行うようなのですが、自力でやるには少し大変そうです。oauth_version="1.0"幸いPythonには、OAuth認証のための便利なライブラリもありますので、そちらを使うことにしました。こちらの記事を参考にしました。OAuth認証でTwitter連携/ログインを実装する丁寧に進めていきます。requests_oauthlibのOAuth1Sessionメソッドを使ってOAuth認証を開始しましょう。以下のコードを実行してみます。OAuth1Sessionメソッドの引数には、取得したキーを指定してあげます。consumer_secret)print(twitter)上記のコードを実行すると次の一行が表示されます。0x7f4f6835b9e8このままではよくわからなかったので、内部的にどんな処理をしているのかドキュメントを参照しました。):こちらのソースを見ると、どうやら渡したAPIキーを格納したオブジェクトが返ってきているようです。fetch_request_tokenメソッドを使えば良さそうです。ここでOAuth認証のためのトークンを取得したら、認証用のURLを取得します。authorization_urlメソッドを使います。ここまでのコードを見てみましょう。twitter.authorization_url(authorization_url)print(authUrl)このコードを実行すると、Twitterアカウントと連携するための確認画面のURLを取得できます。予想外に長くなったので、続きは次回の記事にしましょう。次は認証されたユーザーのアカウントを操作するためのアクセストークンの入手を行います。コメントをキャンセルメールアドレスが公開されることはありません。千葉県を中心にボランティア活動や勉強会などを行っています。好きな言語はC#とPythonとC++です。関係の技術が好きです。XamarinとかTypeScriptも触ってます。質問・相談・お仕事のご依頼は、Twitterまたは問い合わせフォームまで。今月の人気記事1一年間プログラミングを独学した過程を振り返ってわかったこと。