API de Luma para el registro de usuarios
Un punto final es uno de los extremos de un canal de comunicación. Cuando una API interactúa con otro sistema, los puntos de contacto de esta comunicación se consideran puntos finales. Para las API, un punto final puede incluir la dirección URL de un servidor o servicio. Cada punto final es la ubicación desde la cual las API pueden acceder a los recursos que necesitan para llevar a cabo su función. For example, https://lumapro.serviceaide.com/gateway/api/v1.
A continuación, se muestran las distintas API de Luma disponibles para los desarrolladores de habilidades:
GetContact
La API de Luma GetContact se utiliza para verificar si el usuario existe en Luma y recuperar los detalles del usuario, como el nombre de la pantalla, el número de teléfono y el ID de contacto. Utilice los siguientes detalles para configurar y utilizar la operación de Servicios web para su habilidad:
- Genere y copie el token de acceso a la API desde Luma VA y envíelo a la API como el token “Luma-api-access-key” en el encabezado global. Agregue el permiso de Gestión de usuarios a la clave de acceso a la API de la API. Consulte Crear y gestionar claves de acceso a la API para crear una clave de acceso a la API con permiso de gestión de usuarios.
- Busque el ID externo del tenant y envíelo a la API como el token “Luma-tenant-externalId” en el encabezado global. Haga clic en Tenant → Configuración. Copie el ID externo del tenant en la información del tenant. Consulte la información del tenant para obtener más información.
Método HTTP para la operación: GET
URI: /contactos
- Pase el nombre de usuario proporcionado por el usuario final como Parámetros de la consulta al servicio web.
- Como respuesta, el servicio web verifica si el usuario está disponible en Luma y recupera los detalles del usuario. En la configuración de la respuesta:
Verifique si no se recibe ningún dato o error.
Si se encuentra al usuario, extraiga sus detalles, como el número de teléfono registrado para la validación del usuario.
Extraiga el ID de contacto del usuario coincidente que se utilizará para asociar el ID de contacto de Luma a la cuenta del canal.
Si el usuario existe, Luma devuelve una serie de detalles del usuario. Si la matriz de “datos” devuelve cualquier valor, significa que existen uno o varios usuarios en Luma, que se alinean con esos datos como se muestra a continuación.
{ "status": "Success", "statusCode": 0, "statusLine": "Successfully retrieved the contact profile(s).", "errors": null, "resultData": [ { "href": "/api/v1/contacts/2", "id": 2, "tenant": { "href": "/api/v1/tenants/1597", "tenantId": 1597, "externalId": null, "name": null, "subDomain": null, "symbol": null, "status": null, "description": null, "provisioningDefaults": null, "subscription": null }, "subTenant": { "href": "/api/v1/subtenants/1", "id": 1, "tenant": null, "name": null, "description": null, "parentSubTenant": null }, "createdDate": "2021-06-04T07:51:36.482Z", "createdByContact": { "href": "/api/v1/contacts/1", "id": 1, "tenant": null, "subTenant": null, "createdDate": null, "createdByContact": null, "modifiedDate": null, "modifiedByContact": null, "contactExternalId": null, "userName": null, "email": null, "title": null, "firstName": null, "lastName": null, "middleName": null, "phone": null, "timezone": null, "language": null, "memberships": [], "customAttributes": [], "lastUpdatedSourceType": "WEB_UI", "lastUpdatedSource": "Bot Builder", "displayName": null, "conversationCount": 0, "recordStatus": { "href": null, "id": 1, "status": "active", "description": null }, "deactivationSource": null }, "modifiedDate": "2021-06-04T07:51:36.482Z", "modifiedByContact": { "href": "/api/v1/contacts/1", "id": 1, "tenant": null, "subTenant": null, "createdDate": null, "createdByContact": null, "modifiedDate": null, "modifiedByContact": null, "contactExternalId": null, "userName": null, "email": null, "title": null, "firstName": null, "lastName": null, "middleName": null, "phone": null, "timezone": null, "language": null, "memberships": [], "customAttributes": [], "lastUpdatedSourceType": "WEB_UI", "lastUpdatedSource": "Bot Builder", "displayName": null, "conversationCount": 0, "recordStatus": { "href": null, "id": 1, "status": "active", "description": null }, "deactivationSource": null }, "contactExternalId": "8ad83517-2a3d-4075-99d0-888e6b4a5458", "userName": "John", "email": "test@gmail.com", "title": null, "firstName": "John", "lastName": "Smith", "middleName": null, "phone": "+91 1235667788", "timezone": null, "language": { "href": "/api/v1/languages/1", "id": 1, "tenant": null, "subTenant": null, "createdDate": null, "createdByContact": null, "modifiedDate": null, "modifiedByContact": null, "code": null, "name": null, "displayName": null, "locale": null }, "memberships": [], "customAttributes": [], "lastUpdatedSourceType": "WEB_UI", "lastUpdatedSource": "Bot Builder", "displayName": "John Smith", "conversationCount": 0, "recordStatus": { "href": "/api/v1/recordStatus/1", "id": 1, "status": null, "description": null }, "deactivationSource": null } ], "warnings": [], "timestamp": 1622794112816, "reasonPhrase": null, "metaInfo": { "totalRecordCount": 1, "currentRecordCount": 1 } }
Si el usuario no existe, Luma devuelve una matriz de “datos” vacía como se muestra a continuación.
{ "status": "Success", "statusCode": 0, "statusLine": "Successfully retrieved the contact profile(s).", "errors": null, "resultData": [], "warnings": [], "timestamp": 1622793185448, "reasonPhrase": null, "metaInfo": { "totalRecordCount": 0, "currentRecordCount": 0 } }
MapUserToChannelAccount
La API de Luma API MapUserToChannelAccount se utiliza para asociar el contacto/usuario verificado con la cuenta del canal con el estado y el modo de autenticación adecuados.
- Genere y copie el token de acceso a la API desde Luma VA y envíelo a la API como el token “Luma-api-access-key” en el encabezado global. Agregue el permiso del bot a la clave de acceso a la API. Consulte Crear y gestionar claves de acceso a la API para crear una clave de acceso a la API con permiso de bot.
- Busque el ID externo del tenant y envíelo a la API como el token “Luma-tenant-externalId” en el encabezado global. Haga clic en Tenant → Configuración. Copie el ID externo del tenant en la información del tenant. Consulte la información del tenant para obtener más información.
Método HTTP para la operación: PUT
URI: /contactchannelauthentication/{channelAccountId}
- Pase el ID de la cuenta del canal como Parámetros de la ruta al servicio web. El ID de la cuenta del canal del usuario está disponible en la variable de contexto del canal @{channel.channelAccountId}
Pase el ID de la cuenta del canal y el ID de contacto de Luma del usuario como carga útil de salida. El ID de contacto es el ID de contacto del usuario en Luma y se obtiene mediante la API GetContact.
{ "ccaExternalId": "@{channel.channelAccountId}", "authenticationStatus": "SUCCESS", "authenticationMode": "MANUAL", "contact": { "id": @{global.ootb_contact_id} } }
- Como respuesta, el servicio web asigna el valor Luma del ID de usuario al ID de la cuenta del canal y responde con el estado correcto. El usuario ahora está registrado en Luma para el canal de chat específico
Nota
Es obligatorio transmitir el ID de contacto del usuario en Luma y el ID de la cuenta del canal en la solicitud.