Comment gérer les utilisateurs et les canaux avec BizOps Workspace
Tags: pubnubbizopsworkspace, usermanagement, channelmanagement, chatmanagement
Published: 2024-04-04 07:16:53

Cet article fait partie d'une série d'articles qui traitent des capacités de gestion des données de PubNub, connues collectivement sous le nom de [BizOps Workspace](https://pubnub.com/docs/bizops-workspace/basics):

-   Comment gérer les utilisateurs et les canaux avec BizOps Workspace
-   [Comment surveiller et modérer les conversations avec BizOps Workspace](https://pubnub.com/how-to/monitor-and-moderate-conversations-with-bizops-workspace)

BizOps Workspace est un ensemble d'outils qui vous aident à gérer votre application. Cet article se penchera sur les fonctionnalités**" Gestion des utilisateurs**" et**" Gestion des canaux**" qui vous permettent de gérer les métadonnées du contexte applicatif sur vos utilisateurs et canaux, ainsi que la relation " d'adhésion " entre eux sans modifier le code. Cet article expliquera ce qu'est le contexte applicatif et comment il est lié à la gestion des utilisateurs et des canaux, et fournira quelques exemples interactifs pour vous aider à comprendre comment BizOps Workspace peut vous aider à gérer votre solution.

Qu'est-ce que le contexte applicatif ?
--------------------------------------

Le[contexte d](https://www.pubnub.com/docs/general/metadata/channel-metadata) 'application (anciennement connu sous le nom d'objets) vous permet de :

-   Donner un sens aux utilisateurs et aux canaux de votre application et aux relations entre eux.
-   Stocker les métadonnées de toutes vos entités sur le serveur, ce qui permet de fournir une source globale de vérité à vos clients. Notez qu'un utilisateur n'a pas besoin de représenter un être humain, et qu'il est courant de stocker le statut de l'appareil dans l'objet utilisateur à la place.
-   Recevoir des événements instantanés en temps réel lorsque les valeurs d'un objet changent.

Bien que n'importe quelle application puisse utiliser App Context, il est particulièrement populaire auprès des développeurs qui créent des [solutions de chat](https://www.pubnub.com/solutions/chat/).

Le contexte d'application en lui-même n'est pas nouveau, donc si vous le connaissez déjà, veuillez passer à la section suivante qui traite de ce que la " gestion des utilisateurs " et la " gestion des canaux " fournissent.

App Context fournit un ensemble de champs suggérés pour vos [utilisateurs](https://www.pubnub.com/docs/general/metadata/users-metadata) et vos [canaux](https://www.pubnub.com/docs/general/metadata/channel-metadata), ainsi que des champs suggérés pour les [adhésions](https://www.pubnub.com/docs/general/metadata/membership-metadata) entre eux. La plupart de ces champs sont facultatifs, mais voyons comment vous pourriez utiliser App Context dans une application de chat typique.

![](https://www.pubnub.com/cdn/3prze68gbwl1/5ICbXWgNTJNc5kXAAQ4qJI/40b24d228d9ed97e17e47b027469bcdf/app_context_diagram.png)

### Contexte applicatif de l'utilisateur

Lorsqu'un nouvel utilisateur est enrôlé dans votre application, peut-être par le biais d'un fournisseur d'identité externe, vous devez avoir un moyen d'identifier cet utilisateur de manière unique pour PubNub ; c'est l'[ID utilisateur](https://www.pubnub.com/docs/general/setup/users-and-devices) que le client de votre utilisateur utilisera pour initialiser le SDK PubNub. L'ID utilisateur PubNub peut ne pas être le même que l'ID que vous utilisez ailleurs dans votre solution pour identifier ce même utilisateur, nous recommandons donc de garder une trace de cela dans le champ 'External ID'.

Le nom d'utilisateur, l'email et l'URL du profil ne nécessitent pas d'explication, mais l'avantage de les conserver dans App Context signifie que si un utilisateur modifie l'un de ces champs, les changements peuvent être propagés à l'échelle à tous les clients qui écoutent en utilisant les événements App Context, qui sont pris en charge par tous nos SDKs.

### Canal App Context

PubNub crée automatiquement des canaux chaque fois qu'un utilisateur s'y abonne ou y publie, mais les canaux représentent probablement quelque chose de significatif pour votre application, par exemple, dans une application de chat, vous pouvez avoir un chat de groupe qui utilise un canal pour communiquer ou un événement en direct peut utiliser un canal dédié pour gérer les sondages.

En spécifiant le contexte applicatif pour un canal, vous stockez et mettez à jour toutes les métadonnées souhaitées relatives à ce canal, ces mises à jour étant éventuellement propagées à tous les clients intéressés. Vous pouvez donner un nom à un canal, par exemple "Chat entre l'utilisateur A et l'utilisateur B", et il se peut que le canal soit lié à un stockage de documents, qui pourrait être suivi dans un champ "URI" personnalisé.

### Contexte applicatif de l'adhésion

Après avoir défini le contexte applicatif pour nos utilisateurs et nos canaux, nous pouvons maintenant définir la relation entre les deux en spécifiant si les utilisateurs sont ["membres"](https://www.pubnub.com/docs/general/metadata/membership-metadata) d'un canal.

Lorsqu'un utilisateur rejoint un canal, il peut recevoir des mises à jour concernant tout autre membre de ce même canal ; il peut être notifié lorsque des utilisateurs "rejoignent" ou "quittent" ainsi que lorsque le contexte applicatif de cet utilisateur est mis à jour (par exemple, lorsqu'il met à jour son nom).

Il s**'agit d'un mécanisme très puissant qui offre une grande valeur ajoutée**, en particulier pour les développeurs d'applications de chat. Si vous n'utilisiez pas App Context, vous devriez suivre vous-même chaque utilisateur, les canaux dont il est membre, et notifier tous les autres membres du même canal lorsque l'utilisateur rejoint ou quitte l'application. Ce défi n'est pas linéaire, donc plus vous avez d'utilisateurs dans votre solution, plus il devient difficile pour vous d'essayer de gérer toutes ces informations de manière centralisée.

En utilisant App Context, vos clients de chat reçoivent toutes les informations dont ils ont besoin pour maintenir leur état interne, et vous avez également un contrôle total sur ces données avec PubNub [Access Manager](https://www.pubnub.com/docs/general/security/access-control) pour empêcher tout accès non autorisé.

Qu'est-ce que la gestion des utilisateurs et des canaux ?
---------------------------------------------------------

La gestion des utilisateurs et des canaux permet de modifier les données de l'App Context de votre application sur le serveur via le portail d'administration PubNub. Par exemple, vous pouvez modifier le nom d'un utilisateur ou la description d'un canal, ou encore supprimer un utilisateur qui n'est plus nécessaire.

Auparavant, toute personne souhaitant mettre à jour l'App Context d'une application devait développer un frontend dédié qui utilisait l'un de nos SDK pour effectuer les changements requis. Ces nouvelles fonctionnalités de gestion vous permettent de mettre à jour les données de votre App Context sans aucun nouveau développement.

**Pour utiliser la gestion des utilisateurs ou des canaux, il vous faut**

-   App Context activé sur votre clavier
    
-   Utiliser App Context dans votre application pour stocker des métadonnées sur vos utilisateurs et/ou canaux, ainsi que les liens entre ces entités. Le SDK que vous utilisez n'a pas d'importance, bien que nous recommandions notre [Chat SDK](https://www.pubnub.com/docs/chat/chat-sdk/overview) pour les développeurs Typescript créant de nouvelles applications de chat ; la fonctionnalité fonctionnera avec n'importe lequel de nos SDK.
    
-   Voir la [documentation de BizOps Workspace](https://pubnub.com/docs/bizops-workspace/basics) pour plus de détails.
    

### Gestion des utilisateurs

Le panneau de gestion des utilisateurs vous permet de :

-   Créer ou supprimer des utilisateurs
    
-   Filtrer et rechercher des utilisateurs
    
-   Créer ou mettre à jour les métadonnées associées aux utilisateurs
    
-   de créer ou de mettre à jour les membres des canaux pour ces utilisateurs.
    

Par exemple, vous pouvez supprimer des utilisateurs qui ne sont plus actifs dans votre système ou créer de nouveaux utilisateurs à des fins de test sans avoir à les approvisionner séparément.

Tout utilisateur pour lequel vous avez fourni un contexte d'application apparaîtra dans la vue Gestion des utilisateurs. Si vous utilisez notre SDK [de chat](https://www.pubnub.com/docs/chat/chat-sdk/overview), ce SDK gère le contexte d'application pour vous en coulisses ; par exemple, la méthode["createUser()](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/create)" du SDK de chat appellera la fonction JavaScript [setUIDMetadata](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-user-metadata). Si vous utilisez un SDK autre que le SDK de chat, des API dédiées sont fournies pour modifier les données de votre contexte d'application. J'ai déjà mentionné l'API JavaScript, mais il existe des équivalents pour toutes nos API, y compris [Java](https://www.pubnub.com/docs/sdks/java/api-reference/objects), [Swift](https://www.pubnub.com/docs/sdks/swift/api-reference/objects), [Kotlin](https://www.pubnub.com/docs/sdks/kotlin/api-reference/objects), [Python](https://www.pubnub.com/docs/sdks/python/api-reference/objects), [Unity](https://www.pubnub.com/docs/sdks/unity/api-reference/objects), etc.

![](https://www.pubnub.com/cdn/3prze68gbwl1/6Ybt6Y5WBNIjd19GKD2hGS/b3842348ff99c8fc283848877dee7b12/user_management.png)

La [page de documentation sur la gestion des](https://pubnub.com/docs/bizops-workspace/user-management) utilisateurs vous expliquera comment utiliser la gestion des utilisateurs ; n'oubliez pas de créer des adhésions pour tout nouvel utilisateur (Assigner aux canaux) si nécessaire.

### Gestion des canaux

Le volet Gestion des canaux, similaire au volet Gestion des utilisateurs, vous permet de créer ou de supprimer des canaux, de mettre à jour les métadonnées associées aux canaux ainsi que les utilisateurs membres de ces canaux.

Par exemple, vous pouvez supprimer des canaux qui ne sont plus actifs ou créer de nouveaux canaux pour tester une nouvelle fonctionnalité dans votre environnement sans toucher aux données de production.

Tout canal pour lequel vous avez fourni un contexte d'application apparaîtra dans la vue Gestion des canaux. Si vous utilisez notre [SDK de chat](https://www.pubnub.com/docs/chat/chat-sdk/overview), celui-ci gère le contexte d'application pour vous en coulisses ; par exemple, la famille de méthodes["Créer un](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create) canal" appellera les fonctions JavaScript [setChannelMetadata(](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-metadata) ) et [setMemberships](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-memberships). Si vous utilisez un SDK autre que le SDK de chat, des API dédiées sont fournies pour modifier les données de votre contexte d'application.

![](https://www.pubnub.com/cdn/3prze68gbwl1/6a1yxrwwYOlvYb7vEtrayu/1dbb173a633e9581436fb4d12b9cbbb7/channel_management.png)

La [page de documentation sur la gestion des canaux](https://pubnub.com/docs/bizops-workspace/channel-management) vous expliquera comment utiliser la gestion des canaux ; n'oubliez pas de créer des membres pour tout nouveau canal (Assigner des utilisateurs) si nécessaire.

Démonstration interactive de la gestion des utilisateurs et des canaux
----------------------------------------------------------------------

J'ai créé une application de démonstration interactive car il est beaucoup plus facile de comprendre la gestion des utilisateurs et des canaux en l'utilisant ou en la voyant démontrée.

![](https://www.pubnub.com/cdn/3prze68gbwl1/6fQrQb5iTNffTvbCTsvkux/0ef9e6a1c0670f3977a6423a5976a36a/demo_app.png)

Le code de l'application peut être trouvé sur notre [compte PubNubDevelopers GitHub](https://github.com/PubNubDevelopers/App-Context-Toolkit-Exerciser) ou vous pouvez voir une version hébergée de l'application à [https://pubnubdevelopers.github.io/App-Context-Exerciser/.](https://pubnubdevelopers.github.io/App-Context-Exerciser/) Si vous consultez cet article sur PubNub.com, vous devriez également voir l'application intégrée dans une iFrame ci-dessous.

  
**Si le contenu intégré n'est pas disponible** sur cette page, il peut également être consulté à l'[adresse https://pubnubdevelopers.github.io/App-Context-Exerciser/](https://pubnubdevelopers.github.io/App-Context-Exerciser/).

### Mise en place de la démonstration interactive

La démo créera un nouvel utilisateur dans votre jeu de clés pour se représenter et rejoindre tous les canaux qu'elle trouvera dans votre jeu de clés, c'est pourquoi je vous conseille vivement de générer un nouveau jeu de clés lorsque vous jouez avec cette démo.

1.  Générez un nouveau jeu de clés PubNub depuis le [portail d'administration](http://admin.pubnub.com).
    
2.  Activez App Context sur ce jeu de clés
    
3.  Activez les `événements de métadonnées d` '`utilisateur`, de `canal` et de `membre` sur ce jeu de clés. Ces options se trouvent dans la section Contexte de l'application de votre page de configuration de clé. Si vous ne les activez pas, vous ne verrez pas les mises à jour reflétées dans l'application.
    
4.  Laissez toutes les autres options de configuration de la clé sur leurs valeurs par défaut.
    
5.  Notez les clés de publication et d'abonnement que vous avez générées à la première étape.
    
6.  Saisissez les clés de publication et d'abonnement dans les zones de texte appropriées et cliquez sur "Enregistrer".
    

### Utilisation de la démo interactive

Lorsque vous entrez vos clés de publication et d'abonnement dans la démo, celle-ci va

-   [créer un utilisateur](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-user-metadata) pour se représenter dans votre jeu de clés
    
-   interrogera les utilisateurs et les canaux actuellement disponibles dans votre jeu de clés et, s'il ne trouve aucun canal, [créera des canaux](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-metadata) et des utilisateurs de [test](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-metadata).
    
-   L'utilisateur qui représente la démo interactive [rejoindra](https://www.pubnub.com/docs/sdks/javascript/api-reference/objects#set-channel-memberships) tous les canaux qu'il trouve afin de recevoir des mises à jour sur ces canaux et les utilisateurs associés. Si cela vous semble très permissif, rappelez-vous qu'en production, le [gestionnaire d'accès](https://www.pubnub.com/docs/general/security/access-control) sera activé sur votre jeu de clés, ce qui empêchera tout accès non autorisé.
    
-   Passez maintenant aux fonctions 'Gestion des utilisateurs' et 'Gestion des canaux' sous BizOps Workspace dans le portail d'administration de PubNub.
    
-   Vous devriez voir des utilisateurs et des canaux par défaut créés sous les écrans 'User Management' et 'Channel Management', respectivement.
    
-   Mettez à jour le contexte de l'application pour les utilisateurs, les canaux et les adhésions. Vous devriez voir vos mises à jour reflétées dans l'application de démonstration.
    
-   Si nécessaire, utilisez le bouton "Rafraîchir les données" pour extraire les dernières mises à jour du contexte applicatif ; vous n'aurez à le faire que si vous avez créé un utilisateur ou un canal qui ne partage aucune adhésion avec l'utilisateur de l'application de test.
    

![](https://www.pubnub.com/cdn/3prze68gbwl1/1Kd8RdTMGmF517a9N4H0J4/8d195802575cf15995c8cb9e3bcdb008/User_management_updates_-_small.png)

La capture d'écran ci-dessus montre la mise à jour de l'App Context pour l'utilisateur `user_1`, en particulier les champs nom et email, ainsi que l'ajout de quelques données personnalisées.

![](https://www.pubnub.com/cdn/3prze68gbwl1/1ASdPgBKfvGpzENXtf1xvP/8b9be45afc95f091096a530bd31541ac/channel_management_updates_-_small.png)

La capture d'écran ci-dessus montre la mise à jour de l'App Conext pour le canal `test_channel3`, en particulier les champs nom et description, ainsi que quelques données personnalisées.

![](https://www.pubnub.com/cdn/3prze68gbwl1/72uR5a7uqyl8ludAkKuUT3/224b8a12059915f79b7289d30931cb9b/membership_updates_-_small.png)

La capture d'écran ci-dessus montre la suppression de tous les utilisateurs de `testchannel_3`, de sorte que le canal n'a plus de membres. Notez que les membres ne sont plus présents dans la vue 'Memberships'.

Exemples utilisant le PubNub Chat SDK
-------------------------------------

Bien que la gestion des utilisateurs et des canaux fonctionne avec n'importe quel SDK et n'importe quel cas d'utilisation, elle est particulièrement utile aux développeurs qui créent des applications de chat. Comme nous recommandons aux développeurs de créer des applications de chat en utilisant Typescript pour cibler notre [SDK de chat](https://www.pubnub.com/docs/chat/chat-sdk/learn/why-chat-sdk), cette section illustrera ces capacités de gestion utilisées avec ce SDK.

L'[exemple d'](https://www.pubnub.com/docs/chat/chat-sdk/build/sample-chat) application de chat qui fait partie du SDK de chat montre un exemple simple de conversation directe 1:1 entre deux utilisateurs sur un seul canal. Comme mentionné précédemment, le SDK de chat utilisera App Context pour stocker les relations entre ces utilisateurs et canaux, de sorte que nous pouvons utiliser BizOps Workspace pour mettre à jour ces données.

Si vous suivez ces étapes vous-même, vous devrez actualiser l'application de chat pour voir toutes les mises à jour que vous faites sur le backend ; c'est parce que cette application très simple n'a pas été écrite pour écouter les changements dans App Context. C'est une limitation de l'application, pas une limitation du Chat SDK puisque vous pouvez écouter les mises à jour à travers la famille d'API [streamUpdates()](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/membership#get-updates).

Pour gérer les données relatives au canal à l'aide de l'application de [chat](https://www.pubnub.com/docs/chat/chat-sdk/build/sample-chat), vous pouvez modifier le nom du canal et voir le nom mis à jour s'afficher en haut de l'application après avoir actualisé le navigateur.

![](https://www.pubnub.com/cdn/3prze68gbwl1/228bmjw1GDIMmTyzsuDj9D/f5cc9d72ffebb47dc8acd30a4afb703e/Chat_SDK_Channels_-_small.png)

Pour gérer les données de l'utilisateur, vous devez apporter une modification mineure à la structure `userData`; sinon, toutes les modifications apportées seront réécrites chaque fois que vous rechargerez l'application.

Mettez en commentaire tous les paramètres que vous souhaitez pouvoir modifier avec "Gestion des utilisateurs", par exemple :

```js
data: { name: "Mary Watson" /* custom: { initials: "MW", avatar: "#ffab91" }*/ },
```

![](https://www.pubnub.com/cdn/3prze68gbwl1/3JeP7AlxUSTOIqHa5s59UV/623cb9c16c9922db1191ba0b4db53338/Chat_SDK_Users_-_small.png)

Les mises à jour des membres sont un peu plus difficiles à afficher avec l'[exemple d'](https://www.pubnub.com/docs/chat/chat-sdk/build/sample-chat) application de [chat](https://www.pubnub.com/docs/chat/chat-sdk/build/sample-chat), mais l'approche la plus simple à laquelle j'ai pensé serait de modifier la fonction `handleSend()` pour afficher le nombre actuel de membres lors de l'envoi de chaque message ; de cette façon, vous pouvez voir les mises à jour sans avoir à recharger l'application.

Modifiez la fonction `handleSend()` comme suit :

```js
const members = await channel.getMembers()
await channel.sendText(text + "... channel members total: " + members.total)
```

![](https://www.pubnub.com/cdn/3prze68gbwl1/5IkrGhz23QH7E7PFIURyBd/3f92cc57840ad70bbdf21a61181dfed9/Chat_SDK_Memberships_2_-_small.png)

La capture d'écran ci-dessus nécessite une brève explication.

1.  L'envoi d'un message sans modifier les données du contexte de l'application pour les membres, ce qui donne un message indiquant qu'il y a deux membres dans le canal.
    
2.  Suppression de l'un des membres du canal, peu importe lequel.
    
3.  Envoi d'un autre message, cette fois-ci en observant que le message indique qu'il n'y a qu'un seul membre du canal.
    
4.  Si nous répétons l'étape 2, tout message ultérieur indiquera qu'il y a 0 membre dans le canal.
    

**Attendez... Si je ne suis pas membre du canal, pourquoi est-ce que je reçois encore des messages ?** Il s'agit d'une question courante et, comme [indiqué dans la documentation](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create), vous devez appeler `connect()` pour vous abonner à la réception de messages, ce qui est distinct de l'appartenance établie par l'[API de création de canal](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create) - BizOps Workspace ne s'intéresse qu'à cette dernière.

Résumé
------

BizOps Workspace peut vous permettre de gérer facilement vos métadonnées d'utilisateur et de canal, ce qui aurait auparavant nécessité une application dédiée et un effort de développement.

Bien que cet article se soit concentré sur la création d'une nouvelle application, BizOps Workspace est également utile aux développeurs d'applications existantes. Si votre application a été écrite pour utiliser App Context, qui a été le modèle de développement recommandé pour les [applications de chat](https://www.pubnub.com/solutions/chat/) PubNub de production depuis un certain temps, vous devriez être en mesure de tirer parti des fonctionnalités discutées dans cet article sans apporter de modifications à votre code.

La gestion des utilisateurs et la gestion des canaux fonctionneront avec n'importe quel SDK PubNub. Cependant, les développeurs qui utilisent le [Chat SDK](https://www.pubnub.com/docs/chat/chat-sdk/learn/why-chat-sdk) auront plus de facilité à l'adopter puisque App Context est intégré dans l'architecture sous-jacente du Chat SDK. Si vous utilisez le Chat SDK, la gestion des utilisateurs et des canaux fonctionnera tout simplement.

Si vous avez besoin d'aide ou de support, n'hésitez pas à contacter notre équipe de [support dédiée](https://support.pubnub.com/hc/en-us) ou à envoyer un email à notre équipe de relations avec les développeurs à l'adresse [devrel@pubnub.com](mailto:devrel@pubnub.com).

Comment PubNub peut-il vous aider ?
===================================

Cet article a été publié à l'origine sur [PubNub.com](https://www.pubnub.com/how-to/manage-users-and-channels-with-bizops-workspace/)

Notre plateforme aide les développeurs à construire, fournir et gérer l'interactivité en temps réel pour les applications web, les applications mobiles et les appareils IoT.

La base de notre plateforme est le réseau de messagerie en temps réel le plus grand et le plus évolutif de l'industrie. Avec plus de 15 points de présence dans le monde, 800 millions d'utilisateurs actifs mensuels et une fiabilité de 99,999 %, vous n'aurez jamais à vous soucier des pannes, des limites de concurrence ou des problèmes de latence causés par les pics de trafic.

Découvrez PubNub
----------------

Découvrez le [Live Tour](https://www.pubnub.com/tour/introduction/) pour comprendre les concepts essentiels de chaque application alimentée par PubNub en moins de 5 minutes.

S'installer
-----------

Créez un [compte PubNub](https://admin.pubnub.com/signup/) pour un accès immédiat et gratuit aux clés PubNub.

Commencer
---------

La [documentation PubNub](https://www.pubnub.com/docs) vous permettra de démarrer, quel que soit votre cas d'utilisation ou votre [SDK](https://www.pubnub.com/docs).