Рубрики
Без рубрики

Как интегрировать с Slack Oauth в колбе

Я пытался интегрировать с Slack Oauth в колбе. На самом деле, вы можете легко понять, как только вы прочитаете официальный документ, который я предполагаю. Но некоторые ошибки возникли мне, например, например, чтобы получить пользовательские данные. Итак, здесь это учебник для успешного аутентификации. Помечено с колбой, Python, Slack.

Я пытался интегрировать с 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”