Aller à la documentation
SparkGlimSparkGlim Développeurs
Rechercher dans toute la documentation

Essayez un sujet dans votre langue ou un chemin API exact.

    Guides d’intégration

    Ajouter un membre dans le vrai parcours Revendeur

    Utilisez session et relation d’équipe existantes sans inventer une API d’inscription de créateurs.

    Avant de commencer

    • Session d’un opérateur Revendeur approuvé avec permission de gestion des membres.
    • Contrat du portail Revendeur distinct des clés Organisation et des API publiques.
    • Autorisation explicite pour un membre de test contrôlé ; aucun enregistrement ou message réel automatique.
    01

    Lire le contexte du compte

    Depuis votre serveur, utilisez GET /api/white-label/portal/reseller avec la session Bearer existante. Le serveur résout le compte et les droits ; un jeton fourni par un visiteur ne définit pas un rôle administrateur.

    Gardez les sessions privées et no-store. Lire un profil ne permet pas toute création de membre ni l’accès à un autre compte.

    Requête illustrative avec valeurs fictives
    typescript
    export async function readResellerProfile(sessionToken: string) {
      const response = await fetch('https://api.sparkglim.net/api/white-label/portal/reseller', {
        headers: { Authorization: 'Bearer ' + sessionToken, Accept: 'application/json' },
        cache: 'no-store', signal: AbortSignal.timeout(15000)
      });
      const payload = await response.json();
      if (!response.ok || payload.success !== true) throw new Error(payload.error || 'Reseller access denied');
      return payload.data;
    }
    02

    Préparer la demande add-member

    POST /api/white-label/portal/reseller/members accepte les champs pertinents displayName, contact, memberType et relations autorisées. L’exemple inactif évite owner et élévation de permissions ; il attend un test autorisé explicite.

    Le serveur utilise l’équipe Créateur et conserve le lien Revendeur distinct. L’ancien /invitations renvoie 410. N’inventez pas de création directe de créateur et n’activez pas un compte non approuvé.

    Requête illustrative avec valeurs fictives
    typescript
    type MemberInput = { displayName: string; email?: string; phone?: string; memberType: 'sub_creator' | 'operator' | 'finance' | 'support' };
    export async function addApprovedTestMember(sessionToken: string, input: MemberInput, approvedTest: boolean) {
      if (!approvedTest) throw new Error('Approved test member required');
      const response = await fetch('https://api.sparkglim.net/api/white-label/portal/reseller/members', {
        method: 'POST', headers: { Authorization: 'Bearer ' + sessionToken, 'Content-Type': 'application/json' },
        body: JSON.stringify(input), cache: 'no-store', signal: AbortSignal.timeout(15000)
      });
      const payload = await response.json();
      if (response.status !== 201 || payload.success !== true) throw new Error(payload.error || 'Member not created');
      return payload.data;
    }
    03

    Continuer par l’accès d’équipe existant

    Suivez le résultat réel puis le parcours normal de profil, vérification et connexion organisateur/équipe. Statut, OTP, campagnes et droits restent sous contrôle serveur.

    Traitez 401, refus et validation honnêtement. Un enregistrement retourné ne garantit pas un membre actif ; consultez le statut réel et l’accès d’équipe existant.

    Vérifier votre intégration

    • Vérifier lecture autorisée et refus des appelants non autorisés.
    • Préserver frontières et permissions ; aucune clé Organisation ni ancienne route d’invitation.