contentFlaskでSlack認証を完了するまでの流れ(Python)PythonFlaskSlackFlaskでSlack認証を実装してみました。大体は、公式のドキュメントを見れば通るのですが、認証すると同時にユーザー情報も取得したいみたいな時にやや戸惑った部分もあるので、備忘録も兼ねて残しておきます。前提Slackアプリの登録については前回詳しく流れを書いています。https://qiita.com/svfreerider/items/0e1fe74c70e2047f0ce9ほとんどは下記の公式ドキュメントのコードのまんまです。'channels:read,chat:write:bot,users:read,users:read.email'認証機能を実装していくauth.pyを用意します。Slackアプリを登録した際に取得したclient_idとclient_secretを定義します。これに加えてscopeを定義します。scopeは、今回のアプリを作るにおいてユーザーに求める権限の範囲を指定します。アプリ側でも設定しておく必要があります。申請する際には「なぜ、このscopeが必要か」の理由を書かなければなりません。自分の場合は、ボットを作ってそこから通知を送るので、チャンネルを指定するchannels:readと、chat:write:botを加えました。それから、あとでユーザーの個人情報と、メールアドレスも欲しいので、users:readとusers:read.emailも入れておきました。redirect(authorize_url)こうしておくと、/auth/redirectへ移動することでSlackの認証画面へリダイレクトされます。)callbackした後に、URLの先についているcodeを使ってユーザーの情報を取得します。ユーザーの取得はoauth_accessで行なっています。この時はまだユーザーの名前や、メールアドレスの情報は取れていません。今度は取得したoauth_tokenを使ってユーザーの詳細情報を別で呼んでいきます。client.users_info(user=user_id)users_infoでユーザーのメールアドレスや、名前だけでなくアイコン画像やタイムゾーンなど欲しい情報は全部取ってくることができます。これはFlaskに限らず、Pythonであればそのまま流用できるかと思います。2週間前にFlaskを入れてみたのですが、Railsを長年やってきた身としては、全然文献が見当たらないなというのが感想です。これから、機械学習+Flaskでアプリを作るケースは確実に増えていくと思うので、随時共有していくようにします。requestStockLike1@svfreerider素人なんで、お手柔らかにお願いします。upLoginユーザーは見つかりませんでした。