Я пытался интегрировать с Slack Oauth в колбе. На самом деле, вы можете легко понять, как только вы прочитаете официальный документ, который я предполагаю. Но некоторые ошибки возникли мне, например, например, чтобы получить пользовательские данные. Итак, здесь это учебник для успешного аутентификации.
Ссылка
Если вы узнали больше о Slack App, пожалуйста, проверьте это. Я писал об этом раньше. https://dev.to/shyamady/how-to-publish-slack-app-using-rails-5hlm
Официальный документ https://slack.dev/python-slackclient/auth.html.
Код
import functools import pdb import slack from flask import ( Blueprint, flash, g, redirect, render_template, request, session, url_for ) from app.db import ( search_user, register_user, search_team, register_team, search_team_user, register_team_user ) bp = Blueprint('auth', __name__, url_prefix='/auth') client_id = 'XXXXXXXXXXXXXXX' client_secret = 'XXXXXXXXXXXXXXX' oauth_scope = 'channels:read,chat:write:bot,users:read,users:read.email'
Определить ID клиента
и Client_Secret
изначально. Кроме того, вам нужно поставить Область
здесь. Область
должно быть включено, что вы запрашиваете пользователям. Не только для приложения, но вам также нужно зарегистрироваться в Slack App. Вы думаете, почему вам нужны эти области при отправке.
В этом случае я добавил Каналы: читать
и Чат: Написать: бот
к этому. Кроме того, нужно установить пользователи: читать
и Пользователи: read.email
Для получения деталей пользователей.
@bp.route('/redirect', methods=['GET']) def authorize(): authorize_url = f"https://slack.com/oauth/authorize?scope={ oauth_scope }&client_id={ client_id }" return redirect(authorize_url)
Посмотреть /auth/redirect
@bp.route('/callback', methods=["GET", "POST"]) def callback(): auth_code = request.args['code'] client = slack.WebClient(token="") oauth_info = client.oauth_access( client_id=client_id, client_secret=client_secret, code=auth_code )
После обратного вызова, затем двигайтесь прямо. Вы можете получить основную информацию с OAUTH_ACCESS
Отказ
Тем не менее, этот ответ не должен включать личную информацию, такую как имя пользователя, электронную почту и т. Д.
access_token = oauth_info['access_token'] client = slack.WebClient(token=access_token) user_id = oauth_info['user_id'] response = client.users_info(user=user_id)
users_info
с Access_Token
приводит вас к тому, чтобы получить практически все информацию пользователя, такую как имя пользователя, электронную почту, значок и часовой пояс.
Я надеюсь, что вы можете использовать этот код в Django или других Python Frameworks. Как я инженер рельсов, не слишком много ссылок касается колбы.
Но я верю, что это будет увеличивать свой номер с возможностью обучения машиной.
Оригинал: “https://dev.to/shyamady/how-to-integrate-with-slack-oauth-in-flask-3bpo”