• Generates the authorization URL for initiating OAuth flow

    Parameters

    • redirectUri: string

      OAuth callback URI

    • scopes: string | string[]

      Array of permission scopes or space-separated string

    • Optionalstate: string

      Optional state parameter for security validation

    Returns string

    Full authorization URL for redirect

    export function getAuthorizationUrl(
    redirectUri: string,
    scopes: string[] | string,
    state?: string,
    ): string {
    ensureCredentialsSet();

    // Convert scopes to string if it's an array, or ensure it's a string if not
    const scopeString = Array.isArray(scopes) ? scopes.join(" ") : scopes;
    const { clientId } = getCredentials();

    const params = {
    client_id: clientId,
    response_type: "code",
    redirect_uri: redirectUri,
    scope: scopeString,
    state: state || "",
    };

    return `${AUTH_URL}?${querystring.stringify(params)}`;
    }