e,
        state_expiration_seconds: int = OAuthStateUtils.default_expiration_seconds,
        installation_store_bot_only: bool = False,
        token_rotation_expiration_minutes: int = 120,
        client: Optional[WebClient] = None,
        logger: Optional[Logger] = None,
    ) -&gt; &#34;OAuthFlow&#34;:

        client_id = client_id or os.environ[&#34;SLACK_CLIENT_ID&#34;]  # required
        client_secret = client_secret or os.environ[&#34;SLACK_CLIENT_SECRET&#34;]  # required
        scopes = scopes