Í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
- Ejemplos
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 tu chatbot en tu aplicación, necesitas obtener tu ApiKey. Si tienes alguna duda, puedes consultar este post en el que puedes aprender cómo hacer esto[a]. También deberás colocar tu iOS App Id en la sección Dominios de Chatbot de la configuración de Blip, para habilitar el chat en tu aplicación.
Para usar la ubicación, configura la Usage Description Key para Location Service en el archivo info.plist. Utiliza la tecla Privacy - Location When In Use Usage Description y configura un mensaje para pedirle 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: nil)
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: nil)
} 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