Catégories
Start-up et applications

Comment intégrer les fonctionnalités de chat dans les applications client via l'API de SendBird

Les appels VoIP, le chat en temps réel et la messagerie sont devenus omniprésents dans les entreprises pour une raison: ils fonctionnent.

Les consommateurs s'attendent désormais à pouvoir contacter instantanément les prestataires de services. Ce type de communication peut stimuler les ventes et conduire à une plus grande satisfaction client. L'inconvénient est que le développement de ce type de fonctionnalité en interne est souvent gourmand en ressources. En outre, cela peut ne pas avoir de sens pour de nombreuses entreprises au milieu de la pandémie de COVID-19 et d'une économie en déclin. Se tourner vers une API pour des fonctionnalités que vous auriez autrement pu développer en interne peut réduire les coûts de développement tout en accélérant le délai de commercialisation de la fonctionnalité.

Dans cet article, nous fournissons des instructions sur la façon d'implémenter rapidement Sendbird UIKit pour iOS et de déployer une messagerie complète à l'aide d'une interface utilisateur et d'une messagerie utilisateur prédéfinies. Sendbird UIKit pour iOS est essentiellement une combinaison d'outils d'interface utilisateur et du SDK Sendbird Chat pour iOS.

Commencer

Certaines choses à garder à l'esprit. Sendbird UIKit pour iOS est un kit de développement avec une interface utilisateur qui permet l'intégration de fonctionnalités de chat standard dans des applications clientes nouvelles ou existantes.

Du thème général aux styles individuels, tels que les couleurs et les polices, les composants peuvent être entièrement personnalisés pour l'identité de marque d'une entreprise.

Actuellement, UIKit pour iOS prend uniquement en charge les canaux de groupe, c'est-à-dire les canaux contenant plusieurs personnes. La configuration minimale requise est iOS 10.3+, Swift 4.2+ / Objective-C et Sendbird Chat SDK pour iOS 3.0.175+. Pour ceux qui souhaitent tester l'exemple d'application Sendbird, ils peuvent y accéder depuis notre référentiel GitHub.

Sendbird UIKit prend en charge à la fois Objective-C et Swift, afin que les utilisateurs puissent créer un projet dans le langage avec lequel ils souhaitent développer.

Choisissez les options pour votre nouveau projet

UIKit pour iOS peut être installé via CocoaPods ou Carthage:

Pour CocoaPods

  1. Ajoutez SendBirdUIKit dans votre Podfile dans Xcode comme ci-dessous:
            platform :ios, '10.3' 
            use_frameworks! 
    
            target YOUR_PROJECT_TARGET do
                pod 'SendBirdUIKit'
            end
  2. Installez le framework SendBirdUIKit via CocoaPods.
    $ pod install
  3. Mettez à jour le framework SendBirdUIKit via CocoaPods.
    $ pod update

Remarque: Sendbird UIKit pour iOS dépend du SDK de Sendbird Chat. Si vous installez UIKit, CocoaPods installera également automatiquement le SDK Chat pour iOS. La configuration minimale requise pour le SDK Chat pour iOS est 3.0.175 ou supérieure.

Pour Carthage

  1. Ajoutez SendBirdUIKit dans votre Cartfile comme ci-dessous:
    github "sendbird/sendbird-uikit-ios"
  2. Installez le framework SendBirdUIKit via Carthage.
    $ cartage update 
  3. Accédez à l'onglet Paramètres généraux de votre cible de projet Xcode dans la section Frameworks and Libraries. Faites ensuite glisser et déposez sur le disque chaque framework depuis / Carthage / Build / iOS dossier.
  4. Accédez à l'onglet Paramètres de la phase de construction de votre cible de projet Xcode, cliquez sur l'icône + et choisissez Nouvelle phase de script d'exécution. Créez un script d'exécution, spécifiez votre shell (ex: / bin / sh), et ajouter / usr / local / bin / carthage copie-frameworks au script sous le shell.

Autorisation de pièce jointe multimédia

Sendbird UIKit offre des fonctionnalités pour joindre ou enregistrer des fichiers tels que des photos, des vidéos et des documents. Pour utiliser ces fonctionnalités, vous devez demander l'autorisation aux utilisateurs finaux.Une fois l'autorisation accordée, les utilisateurs peuvent envoyer des messages image ou vidéo et enregistrer des ressources multimédias.

Ensuite, placez le code ci-dessous dans le fichier Info.plist présent dans le dossier racine de votre projet iOS. Cela vous aidera à créer des notifications dans l'application pour demander des autorisations.

...
NSPhotoLibraryUsageDescription
    $(PRODUCT_NAME) would like access to your photo library
NSCameraUsageDescription
    $(PRODUCT_NAME) would like to use your camera
NSMicrophoneUsageDescription
    $(PRODUCT_NAME) would like to use your microphone (for videos)
NSPhotoLibraryAddUsageDescription
    $(PRODUCT_NAME) would like to save photos to your photo library
...
Autorisation de pièce jointe multimédia

(Facultatif) Autorisation de pièce jointe au document
Si vous souhaitez joindre des fichiers à partir d'iCloud, vous devez activer la fonction iCloud. Une fois activé, les utilisateurs peuvent également envoyer un message avec des fichiers depuis iCloud.

Accédez à l'onglet Signature et capacités de votre projet Xcode. Ensuite, cliquez sur le bouton + Capacité et sélectionnez iCloud. Vérifiez les documents iCloud.

(Facultatif) Autorisation de pièce jointe au document

Guide d'implémentation

Initialiser avec un APP_ID

Pour utiliser les fonctionnalités du SDK Chat, vous devez initialiser l'instance SendBirdUIKit avec un APP_ID. Cette étape initialise également le SDK Chat pour iOS. Initialisez l'instance SendBirdUIKit via AppDelegate comme indiqué en plaçant le code dans le fichier AppDelegate.m:

// AppDelegate.m

@import SendBirdUIKit;
...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    NSString *APP_ID = @"2D7B4CDB-932F-4082-9B09-A1153792DC8D"; // The ID of the Sendbird application which UIKit sample app uses..
    (SBUMain initializeWithApplicationId:APP_ID);
    ...

Remarque: Dans ce qui précède, vous devez spécifier l'ID de votre application Sendbird à la place du APP_ID.

Définir l'utilisateur actuel

Les informations utilisateur doivent être définies comme Utilisateur actuel dans le SBUGlobal avant de lancer Sendbird UIKit. Ces informations seront utilisées dans le kit pour diverses tâches. Le champ userId doit être spécifié tandis que d'autres champs tels que pseudo et Profil URL sont facultatifs et remplis de valeurs par défaut s'ils ne sont pas spécifiés.

Met le Utilisateur actuel pour UIKit via le AppDelegate.m fichier comme ci-dessous:

Remarque: Même si vous n'utilisez pas AppDelegate, vous devez enregistrer les informations utilisateur avant de lancer un service de chat.

// AppDelegate.m
@import SendBirdUIKit;
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
        // Case 1: USER_ID only
    (SBUGlobals setCurrentUser:((SBUUser alloc) initWithUserId:{USER_ID} nickname:nil profileUrl:nil));
    
    // Case 2: Specify all fields
    (SBUGlobals setCurrentUser:((SBUUser alloc) initWithUserId:{USER_ID} nickname:{(opt)NICKNAME} profileUrl:{(opt)PROFILE_URL}));
    ...
}

Remarque: Si l'Utilisateur Actuel n'est pas défini à l'avance, il y aura des restrictions à votre utilisation de l'UIKit.

Liste des chaînes

UIKit vous permet de créer un canal spécifiquement pour le chat en tête-à-tête et de répertorier les canaux de chat en tête-à-tête afin que vous puissiez facilement les visualiser et les gérer. Avec la classe SBUChannelListViewController, vous pouvez fournir aux utilisateurs finaux un service de chat complet comprenant une liste de canaux.

Utilisez le code suivant pour SceneDelegate et AppDelegate en le plaçant dans le SceneDelegate.m et AppDelegate.m fichiers respectivement

Objectif c

// SceneDelegate.m
@import SendBirdUIKit;
...
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
 ...
SBUChannelListViewController *channelListVC = ((SBUChannelListViewController alloc) init);
UINavigationController *naviVC = ((UINavigationController alloc) initWithRootViewController:channelListVC); self.window.rootViewController = naviVC;}

Objectif c

// AppDelegate.m
@import SendBirdUIKit;
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
SBUChannelListViewController *channelListVC = ((SBUChannelListViewController alloc) init);
 UINavigationController *naviVC = ((UINavigationController alloc) initWithRootViewController:channelListVC);
self.window.rootViewController = naviVC;}

Remarque: À ce stade, vous pouvez confirmer si le service fonctionne en exécutant votre application client.

Canal

Avec la classe SBUChannelViewController, vous pouvez créer un service de chat basé sur des canaux au lieu d'un service basé sur une liste de canaux. Ce code est utilisé pour ouvrir une conversation entre utilisateurs. Par exemple, si l'utilisateur sélectionne une icône de discussion dans votre application pour discuter avec un autre utilisateur, vous pouvez utiliser le code ci-dessous pour présenter la discussion. Cela élimine le besoin d'afficher une liste de chaînes dans l'application si le développeur de l'application ne souhaite pas afficher une liste.

Remarque: Vous devez avoir un objet SBDChannel ou un ChannelUrl afin d'exécuter un service de chat basé sur un canal. Vous pouvez implémenter le code dans AppDelegate.m ou n'importe où dans votre service où vous souhaitez implémenter le chat de la manière indiquée ci-dessus. Utilisez le code suivant pour implémenter le service de chat:

Objectif c

@import SendBirdUIKit;
...
SBUChannelViewController *channelVC = ((SBUChannelViewController alloc) initWithChannelUrl:{CHANNEL_URL});
UINavigationController *naviVC = ((UINavigationController alloc) initWithRootViewController:channelVC);
(self presentViewController:naviVC animated:YES completion:nil);

Pour Objective-C

UIKit est un framework basé sur Swift. Cependant, si votre projet est en Objective-C, la configuration de quelques étapes supplémentaires vous permet d'exécuter le kit dans votre application cliente. Accédez à l'onglet Paramètres de construction de votre cible de projet Xcode, puis définissez ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES sur YES.

Paramètre de distribution

UIKit est distribué sous la forme d'un gros binaire, qui contient des informations sur les architectures Simulator et Device. Ajoutez le script ci-dessous si vous prévoyez de distribuer votre application dans l'App Store et souhaitez supprimer les architectures inutiles dans la phase de création de l'application.

Accédez à l'onglet Phases de construction de votre cible de projet Xcode. Cliquez ensuite sur + et sélectionnez Nouvelle phase d'exécution de script. Ajoutez ce script.

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

    EXTRACTED_ARCHS=()

    for ARCH in $ARCHS
    do
        echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
        lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
        EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done

    echo "Merging extracted architectures: ${ARCHS}"
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS(@)}"
    rm "${EXTRACTED_ARCHS(@)}"

    echo "Replacing original executable with thinned version"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done

UIKit en bref

L'UIKit pour iOS gère le cycle de vie de son ViewController ainsi que diverses vues et données du Chat SDK pour iOS. Les composants UIKit sont les suivants:

UIKit en bref

Authentification

Afin d'utiliser les fonctionnalités de Sendbird UIKit pour iOS dans vos applications clientes, une instance SendBirdUIKit doit être lancée dans chaque application cliente via l'authentification utilisateur avec le serveur Sendbird.

L'instance communique et interagit avec le serveur à l'aide d'un compte d'utilisateur authentifié et est autorisée à utiliser les fonctionnalités de l'UIKit. Cette page explique comment authentifier votre utilisateur auprès du serveur.

Définir un jeton d'accès

Le serveur Sendbird authentifie les demandes des applications clientes via deux méthodes: l'une utilise uniquement l'ID utilisateur, l'autre utilise un ID utilisateur avec le jeton d'accès de l'utilisateur.

L'authentification de l'ID utilisateur peut être utile pour les applications en développement ou les services existants où une sécurité supplémentaire n'est pas nécessairement nécessaire. D'autre part, l'authentification par jeton d'accès génère des jetons d'accès pour chaque utilisateur via l'API Chat Platform.

Une fois que vous avez demandé et obtenu un jeton pour un utilisateur, vous devez utiliser ce jeton d'accès spécifique pour authentifier l'utilisateur. Cela va dans le AppDelegate.m fichier.

Objectif c

(SBUGlobals setAccessToken:{ACCESS_TOKEN});

Connectez-vous au serveur Sendbird

le SBUMain.connect () connecte un utilisateur au serveur Sendbird à l'aide des informations prédéfinies du Utilisateur actuel. Si l'ID utilisateur utilisé lors de la tentative de connexion n'existe pas sur le serveur Sendbird, un nouveau compte utilisateur est créé avec l'ID utilisateur spécifié.

le SBUMain.connect () met également à jour automatiquement le profil utilisateur sur le serveur Sendbird.

Quand le ViewController est appelé dans l'UIKit, la connexion est automatiquement établie avec le Utilisateur actuel informations qui ont été définies dans le SBUGlobal.

Dans le cas où vous souhaitez vous connecter au serveur Sendbird à un moment particulier, vous pouvez utiliser le code comme ci-dessous. Cela va dans le AppDelegate.m fichier:

(SBUMain connectWithCompletionHandler:^(SBDUser * _Nullable user, SBDError * _Nullable error) {
    ...        
});

Se déconnecter du serveur Sendbird

Lorsqu'un utilisateur n'a pas besoin de recevoir de messages du serveur Sendbird, il est recommandé de déconnecter l'utilisateur du serveur. Même après avoir été déconnecté, l'utilisateur peut toujours recevoir des notifications push pour les nouveaux messages fournis par les APN (Apple Push Notification Service). Pour l'implémenter, veuillez mettre ce code dans le AppDelegate.m fichier:

(SBUMain disconnectWithCompletionHandler:^{});

S'inscrire aux notifications push

Les notifications push sont un type de notification envoyée aux appareils de vos utilisateurs lorsqu'une application s'exécute en arrière-plan.

Les notifications push pour les applications iOS contiendront une charge utile créée par Sendbird et seront transmises via des APN. Le serveur Sendbird communiquera avec les APN chaque fois que nécessaire et les APN enverront une notification push à l'application sur les appareils iOS.

Pour utiliser cette fonctionnalité, vous devez enregistrer les jetons d'appareil des utilisateurs de votre application client sur le serveur Sendbird via le AppDelegate.m fichier.

Remarque: Les APN doivent être configurés à l'avance afin d'envoyer des notifications push.

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
    ...
  (SBUMain registerPushWithDeviceToken:deviceToken completionHandler:^(BOOL success) {
    });
}

Remarque: Vous pouvez utiliser ces méthodes lorsque SBUGlobal.CurrentUser est défini et connecté au serveur Sendbird.

Annuler l'inscription aux notifications push

Vous devez désenregistrer les jetons d'appareil d'un utilisateur du serveur Sendbird si vous ne souhaitez pas envoyer de notifications push à l'utilisateur. Cela ne doit être utilisé que lorsque vous ne souhaitez plus recevoir de notifications push. Pour l'implémenter, veuillez utiliser le code ci-dessous dans le AppDelegate.m fichier:

// If you want to unregister the current device only, call this method.
(SBUMain unregisterPushTokenWithcompletionHandler:^(BOOL success) {
});
// If you want to unregister all devices of the user, call this method.
(SBUMain unregisterAllPushTokenWithcompletionHandler:^(BOOL success) {
});

Remarque: Vous pouvez utiliser ces méthodes lorsque SBUGlobal.CurrentUser est défini et connecté au serveur Sendbird.

Mettre à jour le profil utilisateur

Lorsqu'un CurrentUser est créé avec un ID unique de l'utilisateur, l'UIKit génère automatiquement le surnom et le profileImage de l'utilisateur en fonction de l'ID utilisateur spécifié. Vous pouvez également modifier ces propriétés par vous-même si nécessaire dans le Fichier AppDelegate.m.

Remarque: Vous pouvez utiliser cette méthode lorsque SBUGlobal.CurrentUser est défini et connecté au serveur Sendbird.

(SBUMain updateUserInfoWithNickname:{NICKNAME} profileUrl:{PROFILE_URL} completionHandler:^(SBDError * _Nullable) { 
    ...
});

Maintenant que vous avez obtenu un peu de succès avec l'API Sendbird, vous pouvez penser à la variété des cas d'utilisation auxquels cela pourrait être utile. Par exemple, des applications de commerce électronique converstaional pour aider à réduire l'incertitude des acheteurs, le chat dans l'application pendant les événements de streaming en direct pour augmenter l'engagement du public, ou permettre un transfert d'argent en ligne via une interface de chat au lieu d'exiger qu'un client de la banque se rende dans une succursale.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *