La messagerie interactive enrichit la communication dans les salles de diffusion en direct en activant des fonctionnalités telles que les commentaires, les commentaires défilants et les mentions « J'aime ». ApsaraVideo Live fournit des SDK faciles à intégrer pour ajouter ces fonctionnalités à vos applications de streaming en direct.
Prérequis
Créez un compte Alibaba Cloud capable d'accéder à l'API ApsaraVideo Live, ainsi qu'un utilisateur Resource Access Management (RAM) auquel vous accordez les autorisations nécessaires. Pour plus d'informations, consultez Créer un utilisateur RAM et lui accorder des autorisations.
Créez une application de messagerie interactive et enregistrez les informations la concernant. Si aucune application de messagerie interactive n'est disponible, créez-en une dans la console ApsaraVideo Live.
Déployer un AppServer
-
Une fois l'application de messagerie interactive créée, récupérez les informations suivantes :
ID de l'application (AppID)
Clé de l'application (AppKey)
Signature de l'application (AppSign)
-
Région de l'application (correspondant au centre de diffusion où l'application est déployée).
Enregistrez ces informations dans votre stockage backend.
-
Implémentez votre AppServer.
Un AppServer fournit les identifiants permettant aux clients de se connecter à la messagerie interactive Alibaba Cloud.

Générez un jeton à l'aide de l'algorithme suivant. Pour plus d'informations sur les rôles, consultez la section « Autorisations basées sur l'identité ».
token = sha256(appId + appKey + userId + nonce + timestamp + role)Champ
Description
Limite
appId
ID de l'application.
L'ID est renvoyé par la console lors de la création de l'application.
appKey
AppKey.
La clé est renvoyée par la console lors de la création de l'application.
userId
ID de l'utilisateur.
L'ID peut comporter jusqu'à 64 caractères et ne contenir que des lettres, des chiffres et des traits de soulignement (_).
nonce
Valeur aléatoire (nonce). Elle est au format AK-String et peut atteindre 64 octets.
La valeur de ce champ ne peut contenir que des lettres, des chiffres et des traits de soulignement (_). Ce champ peut également être laissé vide.
role
Rôle. La valeur
adminindique que l'utilisateur peut effectuer des opérations de gestion.Ce champ peut être laissé vide. Pour accorder les autorisations d'administrateur à l'utilisateur, définissez la valeur sur
admin. Toute autre valeur indique que l'utilisateur ne peut pas effectuer d'opérations de gestion. Pour plus d'informations, consultez la section « Autorisations basées sur l'identité » de cette rubrique.timestamp
Heure d'expiration. Unité : secondes. Heure d'expiration = Heure actuelle + Durée de validité.
La valeur est un horodatage Unix, correspondant au nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC jusqu'à l'expiration du jeton.
Après avoir généré le jeton, envoyez-le au client avec les paramètres
appId,userId,nonce,role,timestampet la signature de l'application. Exemple de code :{ "auth": { "nonce": "The nonce that is specified when you generate the token.", "timestamp": 131231234, //<The timestamp that is specified when you generate the token, which is a numeric value.> "role": "The role that is specified when you generate the token.", "user_id": "The user ID that is specified when you generate the token." }, "app_id": "{Your application ID.}", "app_sign": "{Your application signature.}", "app_token": "{The generated token.}" }
Autorisations basées sur l'identité
Rôles de connexion
Le rôle de connexion d'un utilisateur est spécifié lors de la connexion.
|
Nom du rôle |
Valeur |
Description |
|
Utilisateur standard |
Toute valeur autre que |
L'utilisateur peut effectuer des opérations standard, telles que rejoindre un groupe et envoyer un message. |
|
Administrateur |
|
L'utilisateur peut effectuer des opérations standard et des opérations de gestion, telles que la création d'un groupe. |
Rôles liés aux groupes
|
Nom du rôle |
Méthode d'attribution |
Description |
|
Créateur du groupe |
Attribué automatiquement à l'utilisateur qui crée le groupe. |
L'utilisateur peut effectuer des opérations de gestion, telles que mettre en sourdine un utilisateur ou le groupe, et supprimer le groupe. Si le groupe est mis en sourdine, l'utilisateur conserve la possibilité d'envoyer des messages. |
|
Administrateur du groupe |
Attribué par le créateur du groupe lors de sa création, ou via l'appel API de modification des informations du groupe. |
L'utilisateur peut effectuer des opérations de gestion, telles que mettre en sourdine un utilisateur ou le groupe, et supprimer le groupe. Si le groupe est mis en sourdine, l'utilisateur conserve la possibilité d'envoyer des messages. |
|
Autres |
Attribué automatiquement à tout utilisateur rejoignant le groupe qui n'en est ni le créateur ni un administrateur. L'utilisateur quitte automatiquement le groupe en cas de déconnexion ou d'exception. |
L'utilisateur peut rejoindre ou quitter un groupe, et envoyer des messages. Si le groupe est mis en sourdine, l'utilisateur ne peut pas envoyer de messages. |
Intégrer la messagerie interactive côté serveur
Intégrez l'API côté serveur dans votre serveur métier ou AppServer. Pour plus d'informations sur les opérations API, consultez Messagerie interactive (nouvelle). Cliquez sur Debug dans la page d'une opération sur OpenAPI Explorer pour afficher les informations d'intégration du SDK.
ApsaraVideo Live propose des SDK (y compris le SDK de messagerie interactive) dans les versions 1.0 et 2.0. Nous vous recommandons d'utiliser la version 2.0.
-
Dans l'exemple de code suivant, spécifiez la région de l'application que vous créez. Valeurs valides :
cn-shanghaietap-southeast-1(Singapour).Lors de la création de l'application, sélectionnez la région en fonction de vos besoins métier. Les données sont isolées entre les différentes régions.
Lorsque vous appelez une opération API, la région spécifiée doit correspondre à celle de l'application. Sinon, l'appel échouera.
// Configure Credentials authentication information, including ak, secret, token
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
// Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
.accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
//.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token
.build());
// Configure the Client
AsyncClient client = AsyncClient.builder()
.region("cn-qingdao") // Region ID
//.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // Service-level configuration
// Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
.overrideConfiguration(
ClientOverrideConfiguration.create()
// Endpoint. Visit https://api.alibabacloud.com/product/live for reference.
.setEndpointOverride("live.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();
Autorisations d'appel API côté serveur
Après avoir intégré le SDK serveur ApsaraVideo Live, vous pouvez appeler des opérations API depuis votre serveur métier, par exemple pour envoyer des messages à des groupes. Pour plus d'informations, consultez Messagerie interactive (nouvelle).
Les appels côté serveur et côté client présentent les différences suivantes :
Le serveur s'authentifie via des utilisateurs RAM.
Un appel côté serveur dispose des privilèges les plus élevés, incluant les autorisations d'administrateur et de créateur.
Si un groupe est mis en sourdine, vous pouvez toujours envoyer un message via un appel côté serveur. Les messages envoyés de cette manière ne nécessitent pas de modération de contenu.
Rappels
Configurez des rappels pour écouter les événements de l'application tels que la connexion, la déconnexion, l'adhésion à un groupe et le départ d'un groupe. Pour plus d'informations, consultez CreateLiveMessageApp.
Modération de contenu
Paramètres de modération au niveau des messages
Si vous activez la modération de contenu pour l'application, vous pouvez configurer les paramètres suivants au niveau des messages.
Spécifiez si un message envoyé doit être modéré. Par exemple, vous pouvez choisir de ne pas modérer le contenu personnalisé non conversationnel, tel que les messages de cadeaux.
Séparez le message envoyé des éléments de contenu que vous souhaitez modérer. Par exemple, si le texte d'un message personnalisé est « hello », mais que le message contient des informations supplémentaires telles que l'avatar de l'utilisateur, vous pouvez séparer le texte du message des informations supplémentaires en attente de modération.