Índice:
- Adicionando la referencia
- Prerrequisitos
- Abriendo tu ventana de conversación
- (Opcional) Personalizando la interfaz de chat en Android
- Ocultar el menú de la ventana
- Título de la ventana
Con Blip Chat, es posible colocar tu bot dentro de tu aplicación de Android de manera muy simple. Para hacer esto, adiciona la referencia del repositorio en el archivo build.gradle de tu proyecto:
1. Adicionando la referencia
Adiciona la referencia para el repositorio de Maven jcenter.
Si tienes dudas sobre este paso, consulta la documentación oficial:
allprojects {
repositories {
//others repository dependencies
jcenter()
}
}
E importa el módulo a través de gradle:
implementación 'net.take: blip-chat: 2.1.24'
O a través de Maven:
<dependency>
<groupId>net.take</groupId>
<artifactId>blip-chat</artifactId>
<version>2.1.24</version>
<type>pom</type>
</dependency>
O puedes descargar la última versión de JAR e importarla para tu aplicación.
Sin iniciar sesión (no logado): en el que cada usuario es tratado.
2. Prerrequisitos
Para poder utilizar Blip Chat, tu aplicación debe tener acceso a internet. Dicho permiso debe solicitarse dentro del archivo de tu proyecto AndroidManifest.xml.
Si en algún momento tu chatbot solicita la ubicación del usuario, también debes agregar el permiso de ubicación. Para enviar archivos, será necesario que otorgues permisos.
Para hacerlo, agrega la siguiente información al archivo de manifiesto de tu proyecto:
<manifest xlmns:android...>
...
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
...
</manifest>
También deberás agregar la dependencia GSON a tu aplicación, ya que Blip Chat usa esta biblioteca.
implementación 'com.google.code.gson: gson: 2.8.5'
3. Abriendo tu ventana de conversación
Para abrir la ventana de conversación con el bot dentro de tu aplicación, usa la clase BlipClient y llama al método openBlipThread, pasando tu contexto actual y tu API-KEY.
BlipClient.openBlipThread(context, "YOUR-Blip-CHAT-API-KEY", null);
Para encontrar la KEY del Blip Chat de tu bot, ve al portal y elige el bot correspondiente. Haz clic en el módulo Canales y elige el canal de Blip Chat. Haz clic en la pestaña Instalación y copia tu API-KEY, como se muestra en la imagen a continuación[a]:
La ventana de conversación con tu chatbot tiene un menú en la esquina Observación: El método openBlipThread puede devolvernos una excepción, ya que verifica si existe toda la información necesaria para abrir el chat. Por lo tanto, debes colocarlo dentro de un try catch. También puedes pasar un objeto BlipOptions, que tiene algunas configuraciones opcionales de las que hablaremos más adelante.
Ejemplo
Imagina que quieres abrir una conversación entre el usuario y tu chatbot en el mismo momento en que se abre la aplicación.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
BlipClient.openBlipThread(context, "SUA-API-KEY", null);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
4. (Opcional) Personalizando la interfaz de chat en Android
Hay algunas posibilidades para personalizar tu chat que se pueden configurar a través del objeto BlipOptions. Son ellas:
Autenticación
Es posible definir el tipo de autenticación del usuario que conversará con tu chatbot. Hay dos tipos de autenticaciones posibles:
Sin iniciar sesión (no logado): en el que cada usuario es tratado como invitado y no hay información sobre él.
Iniciando sesión (logado): en el que 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 sesión.
Para comprender mejor los posibles modos de autenticación, consulta este post.
Ejemplo:
import net.take.blipchat.AuthType;
import net.take.blipchat.BlipClient;
import net.take.blipchat.models.AuthConfig;
import net.take.blipchat.models.BlipOptions;
import org.limeprotocol.messaging.resources.Account;
...
AuthConfig authConfig = new AuthConfig(AuthType.Dev, "userId123PS","pass123PS");
Account account = new Account();
account.setFullName("User Name Android123");
account.setEmail("test@android.com");
BlipOptions blipOptions = new BlipOptions();
blipOptions.setAuthConfig(authConfig);
blipOptions.setAccount(account);
BlipClient.openBlipThread(context, APP_KEY, blipOptions);
Ocultar el menú de la ventana
La ventana de conversación con tu chatbot tiene un menú en la esquina superior derecha que se puede ocultar. Para hacer esto, simplemente establece el valor de la propiedad hideMenu dentro del objeto BlipOptions. Por defecto, esta propiedad es false.
BlipOptions blipOptions = new BlipOptions ();
blipOptions.setHideMenu (true);
Título de la ventana
La ventana de conversación con tu chatbot tiene un menú en la esquina En Android, la ventana de Blip Chat tiene un título que se puede personalizar. Para hacer esto, establece el valor de la propiedad windowTitle con el título apropiado. De forma predeterminada, este título es Blip Chat.
let options = BlipOptions()
options.windowTitle = "Tu título";
Ejemplo
import net.take.blipchat.*;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
BlipOptions blipOptions = new BlipOptions();
blipOptions.setAuthType(AuthType.DEV);
blipOptions.setUserIdentifier("IDENTIFICADOR-DO-USUARIO");
blipOptions.setUserPassword("SENHA-DO-USUARIO");
blipOptions.setUserName("NOME-DO-USUARIO");
blipOptions.setUserEmail("EMAIL-DO-USUARIO");
blipOptions.setHideMenu(true); // Esconde o menu da janela
BlipClient.openBlipThread(MainActivity.this, "SUA-API-KEY", blipOptions);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}