Índice:
- Prerrequisitos
- Configurando tu chat
- Abriendo tu ventana de conversación
- Funciones avanzadas:
- Autenticación
- Ocultar el menú de la ventana
- Título de la ventana con autenticación de tipo Dev
- Especificar datos del usuario
-
Con Blip Chat, puedes colocar su chatbot dentro de tu aplicación Android e iOS de una manera, muy simple.
En iOS, Blip Chat admite aplicaciones creadas en Swift y Objective-C. La instalación se realiza a través de CocoaPod; si aún no tieneS CocoaPod, consulta esta guía que te enseñará cómo configurarlo.
Para usar Blip Chat, simplemente adiciona la referencia en el archivo Podfile:
target 'MyApp' do
...
use_frameworks!
Pod "BlipChat"
...
end
Y termina de instalar el pod ejecutando el comando en el directorio de tu proyecto:
$ pod install
Abre *.xcworkspace con Xcode.
Observación: No uses *.xcodeproj. Recibirás un error si abres un archivo de proyecto en lugar del workspace.
Prerrequisitos
-
Para usar Blip Chat en iOS, usa la versión 10 de iOS o superior.
-
En iOS, solo es necesario informar el permiso de ubicación. Entonces, si tu chatbot solicita la ubicación del usuario en cualquier momento, debes agregar un mensaje al usuario que explique por qué se necesita la ubicación. Agrega la clave Privacy - Location When In Use Usage Description de uso al archivo info.plist de tu proyecto.
Configurando tu chat
Para incluir su chatbot en su aplicación, necesita obtener su ApiKey. Si tienes dudas puedes consultar Esta publicación te enseña cómo hacer esto.. También necesitarás colocar tu ID de la aplicación iOS en la sesión Dominios de chatbot de la configuración de BLiP, para habilitar el chat en su aplicación.
El ID del proyecto de la aplicación iOS se puede obtener de Firma y capacidades de tu proyecto:
Además, debe agregar el ID de la aplicación iOS a su perfil de desarrollador:
Y luego agregado en el Bot, en Configuración -> Dominios ChatBot:
Para utilizar la ubicación, configure el Clave de descripción de uso a Servicio de localización en el archivo lista de información. Usa una chaveta Privacidad: ubicación cuando está en uso Descripción de uso y configurar un mensaje para pedir permiso al usuario para usar su ubicación.
Abriendo tu ventana de conversación
- Importa el Blip SDK
Swift:
import BlipChat
Objetive-C:
#importar "BlipChat / BlipChat.h"
- Usa la clase BlipClient y llama al método openBlipThread para abrir una nueva thread.
Swift:
BlipClient.openBlipThread(myView: self, apiKey: "SUA-API-KEY", options: BlipOptions())
Objetive-C:
[BlipClient openBlipThreadWithMyView:self appKey:(NSString*) @"your-api-key" options:options error: nil];
Observación: En Objective-C, el nombre del método es openBlipThreadWithMyView.
- Ahora imagina lo que quieras, por ejemplo, abrir una conversación entre el usuario y tu chatbot tan pronto como se abre la aplicación (cuando se carga ViewController).
Swift:
import UIKit
import WebKit
import BlipChat
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
do {
try BlipClient.openBlipThread(myView: self, appKey: "your-api-key", options: BlipOptions())
} catch {
print (error.localizedDescription)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Objective-C:
#import "ViewController.h"
#import "BlipChat/BlipChat.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear: animated];
[BlipClient openBlipThreadWithMyView:self appKey:@"your-app-key" options:nil error: nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Funciones avanzadas:
También hay algunas posibilidades de personalización para tu chat que se pueden configurar a través del objeto BlipOptions.
Autenticación
Es posible definir el tipo de autenticación del usuario que charlará con tu chatbot. Hay dos tipos de autenticaciones posibles:
- Guest: donde cada usuario es tratado como invitado y no hay información sobre ellos;
- Dev: donde el desarrollador de la aplicación es responsable de pasar la información del usuario a Blip Chat. En este modo, el historial de conversaciones está disponible cada vez que el usuario inicia la sesión.
Para comprender mejor los posibles modos de autenticación, échale un vistazo a este post[b]que explica de forma detallada cada uno de estos tipos.
Para definir el tipo de autenticación, utilice la enumeración AuthTypeProvider.AuthType en la propiedad authType de BlipOptions.
Al usar Swift, los tipos posibles son: .Guest y .Dev.
Al utilizar Objective-C, los valores posibles son: AuthTypeGuest y AuthTypeDev.
Swift:
let authConfig = AuthConfig(authType: .Dev, userIdentity: "user-identifier", userPassword: "user-password")
options = BlipOptions(authType: authConfig, account: nil)
Objective-C:
AuthConfig *authConfig = [[AuthConfig alloc] initWithAuthType:AuthTypeDev userIdentity:@"user-identifier" userPassword:@"user-password"];
options = [[BlipOptions alloc] initWithAuthType:authConfig account: nil];
Ocultar el menú de la ventana
La ventana de chat con tu chatbot tiene un menú en la esquina superior derecha y se puede ocultar. Para hacer esto, simplemente debes establecer el valor de la propiedad hideMenu dentro del objeto BlipOptions.
Swift:
let options = BlipOptions()
options.hideMenu = false;
Objective-C:
BlipOptions *options = [[BlipOptions alloc] init];
options.hideMenu = NO;
Título de la ventana
En iOS, la ventana de Blip Chat tiene un título que se puede personalizar. Para hacer esto, establezca el valor de la propiedad windowTitle en el título apropiado. De forma predeterminada, este título es Blip Chat.
Swift:
let options = BlipOptions()
options.windowTitle = "Seu Título";
Objective-C:
BlipOptions *options = [[BlipOptions alloc] init];
options.windowTitle = @"Seu Título";
Título de la ventana con autenticación de tipo Dev
Swift:
import UIKit
import WebKit
import BlipChat
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewDidAppear(_ animated: Bool) {
let authConfig = AuthConfig(authType: .Dev, userIdentity: "user-identifier", userPassword: "user-password")
let account = Account(fullname: "user-name", email: "user-email")
let options = BlipOptions(authType: authConfig, account: account)
options.windowTitle = "Seu título"
do {
try BlipClient.openBlipThread(myView: self, appKey: "sua-app-key", options: options)
} catch {
print (error.localizedDescription)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Objective-C:
#import "ViewController.h"
#import "BlipChat/BlipChat.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear: animated];
AuthConfig *authConfig = [[AuthConfig alloc] initWithAuthType:AuthTypeDev userIdentity:@"user-identifier" userPassword:@"user-password"];
Account *account = [[Account alloc] initWithFullname:@"user-name" email:@"user-email"];
BlipOptions *options = [[BlipOptions alloc] initWithAuthType:authConfig account:account];
options.windowTitle = @"Seu título";
[BlipClient openBlipThreadWithMyView:self appKey: @"your-app-key" options:options error: nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Especificar datos del usuario
Blip Chat permite especificar algunos datos del usuario, como el nombre completo, el email y otros, al realizar la carga. Para ver todas las propiedades posibles, accede a la documentación del Lime Protocol.
Para definir la información, crea un objeto Account y pásalo como parámetro a BlipOptions.
Swift:
let authConfig = AuthConfig(authType: .Dev, userIdentity: "user-identifier", userPassword: "user-password")
let account = Account(fullname: "user-name", email: "user-email")
options = BlipOptions(authType: authConfig, account: account)
Objective-C:
AuthConfig *authConfig = [[AuthConfig alloc] initWithAuthType:AuthTypeDev userIdentity:@"user-identifier" userPassword:@"user-password"];
Account *account = [[Account alloc] initWithFullname:@"user-name" email:@"user-email"];
options = [[BlipOptions alloc] initWithAuthType:authConfig account: account];
Ejemplos
Después de conocer un poco más las funciones de Blip Chat, hagamos un ejemplo un poco más completo. Supongamos que deseas abrir una conversación entre el usuario y tu chatbot con el tipo de autenticación Dev - proporcionando el nombre, el email y la contraseña - y ocultar el menú de la ventana del chat.
Swift:
import BlipChat
class ViewController: UIViewController {
@IBAction func openThread(_ sender: Any) {
let options = BlipOptions(authType: .Dev,
userIdentifier: "IDENTIFICADOR-DO-USUARIO",
userPassword: "SENHA-DO-USUARIO",
userName: "NOME-DO-USUARIO",
userEmail: "EMAIL-DO-USUARIO")
options.windowTitle = "Meu App iOS" // Define o titulo da janela
options.hideMenu = true // Esconde o menu da janela
do {
try BlipClient.openBlipThread(myView: self, apiKey: "SUA-API-KEY", options: options)
} catch {
print (error.localizedDescription)
}
}
}
Objective-C:
#import "ViewController.h"
#import "BlipChat/BlipChat.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear: animated];
}
- (IBAction)openThread:(id)sender {
BlipOptions *options = [BlipOptions alloc];
if ([sender tag] == 0) {
options = [options init] ;
} else if([sender tag] == 1) {
AuthConfig *authConfig = [[AuthConfig alloc] initWithAuthType:AuthTypeDev userIdentity:@"ObjcTest1" userPassword:@"123456"];
Account *account = [[Account alloc] initWithFullname:@"iosName1" email:@"iosEmail1@email.com"];
account.encryptMessageContent = TRUE;
options = [options initWithAuthType:authConfig account:account];
} else if([sender tag] == 2) {
AuthConfig *authConfig = [[AuthConfig alloc] initWithAuthType:AuthTypeDev userIdentity:@"ObjcTest2" userPassword:@"123456"];
Account *account = [[Account alloc] initWithFullname:@"iosName2" email:@"iosEmail2@email.com"];
account.encryptMessageContent = TRUE;
options = [options initWithAuthType:authConfig account:account];
} else if([sender tag] == 3) {
AuthConfig *authConfig = [[AuthConfig alloc] initWithAuthType:AuthTypeDev userIdentity:@"ObjcTest3" userPassword:@"123456"];
Account *account = [[Account alloc] initWithFullname:@"iosName3" email:@"iosEmail3@email.com"];
options = [options initWithAuthType:authConfig account:account];
}
options.windowTitle = @"Objective C";
[BlipClient openBlipThreadWithMyView:self appKey:@"YOUR-APP-KEY" options:options error:nil];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end