Я использую Python с flask, чтобы попытаться обменять токены, но мне не удается правильно открыть URL-адрес перенаправления.
Slack требует, чтобы перенаправление было https, и я использую localhost для перенаправления на http://127.0.0.1:5000/slack/oauth/callback. Похоже, что Slack не принимает URL-адрес http, а flask не работает с https. Что-то мне не хватает, чтобы это заработало?
Я видел несколько других решений, позволяющих попытаться применить исправление прокси, но у меня это не сработало.
Заранее спасибо и дайте мне знать, если вам нужны какие-либо другие подробности.
Вот что я сейчас делаю:
import html
from slack_sdk.oauth import AuthorizeUrlGenerator
from slack_sdk.oauth.installation_store import FileInstallationStore
from slack_sdk.oauth.state_store import FileOAuthStateStore
from flask import Flask
SLACK_CLIENT_ID = "MY_CLIENT_ID"
state_store = FileOAuthStateStore(expiration_seconds=300, base_dir="./data")
installation_store = FileInstallationStore(base_dir="./data")
# Build https://slack.com/oauth/v2/authorize with sufficient query parameters
authorize_url_generator = AuthorizeUrlGenerator(
client_id=SLACK_CLIENT_ID,
scopes=["app_mentions:read", "chat:write"],
user_scopes=["bookmarks:read", "bookmarks:write", "canvases:read", "canvases:write", "chat:write", "groups:history",
"groups:read", "groups:write", "groups:write.invites", "groups:write.topic", "pins:read", "pins:write"],
)
app = Flask(__name__)
@app.route("/slack/install", methods=["GET"])
def oauth_start():
state = state_store.issue()
url = authorize_url_generator.generate(state)
return f'' \
f'

'
from slack_sdk.web import WebClient
@app.route("/slack/oauth/callback", methods=["GET"])
def oauth_callback():
print("Hello world!") # Doesn't reach this
# Redirect is https://127.0.0.1:5000/slack/oauth/callback
if __name__ == "__main__":
print("install at 'http://127.0.0.1:5000/slack/install'") # Opens ok
app.run()
Подробнее здесь: https://stackoverflow.com/questions/794 ... ot-working
Мобильная версия