Informes de errores error-reporting
Información general overview
Los informes de errores en la autenticación de Adobe Pass se implementan actualmente de dos formas diferentes:
-
Informes de errores avanzados El implementador registra una llamada de retorno de error en el caso del SDK de JavaScript de AccessEnabler o implementa un método de interfaz denominado "
status
" en el caso de SDK de AccessEnabler para iOS/tvOS y SDK de Android de AccessEnabler, para recibir informes de errores avanzados. Los errores se clasifican en Información, Advertencia, y Error tipos. Este sistema de informes es asíncrono, en que no hay garantía del orden en que se activarán los errores múltiples. Para obtener más información sobre el sistema de informes de errores avanzado, consulte Informes de errores avanzados sección. -
Informe de errores original - Un sistema de informes estático en el que los mensajes de error se pasan a funciones de llamada de retorno específicas cuando fallan solicitudes específicas. Los errores se agrupan en tipos genéricos, de autenticación y de autorización. Para obtener la lista de errores notificados en el sistema original, consulte la Informe de errores original sección.
Informes de errores avanzados advanced-error-reporting
SDK de JavaScript de AccessEnabler accessenabler-javascript-sdk
El nuevo sistema de informes de errores se deja opcional, por lo que el implementador puede registrar explícitamente una llamada de retorno del controlador de errores para recibir informes de errores avanzados. El sistema incluye la capacidad de registrar y anular el registro de varias llamadas de retorno de error de forma dinámica. Además, puede registrar cualquier llamada de retorno de error nueva en cuanto se cargue el SDK de JavaScript de AccessEnabler, sin necesidad de realizar ninguna otra inicialización (antes de llamar a setRequestor()
), lo que significa que puede recibir informes avanzados sobre los errores de inicialización y configuración.
Implementación access-enab-js-imp
yourErrorHandler(errorData:Object)
La función de devolución de llamada del controlador de errores recibirá un único objeto (un mapa) con la siguiente estructura:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Vincular bind
.bind(eventType:String, handlerName:String):void
Adjunta un controlador para un evento.
eventType
- SOLO el "errorEvent
El valor " provoca que el SDK de JavaScript de AccessEnabler active las llamadas de retorno de los informes de errores avanzados.
handlerName
: una cadena que especifica el nombre de la función de controlador de errores.
Ambos parámetros de enlace solo deben utilizar caracteres del siguiente conjunto: [0-9a-zA-Z][-._a-zA-Z0-9]
; es decir, los parámetros deben comenzar con un número o una letra y, a continuación, solo pueden incluir guiones, puntos, guiones bajos y caracteres alfanuméricos. Además, los parámetros no pueden superar los 1024 caracteres.
Ejemplo de controladores de error de enlace:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
Debido a limitaciones técnicas, no se puede enlazar un cierre ni una función anónima. Debe especificar el nombre del método en el segundo parámetro.
2. Desenlazar unbind
.unbind(eventType:String, handlerName:String=null):void
Quita un controlador de eventos previamente adjunto.
eventType
- SOLO el 'errorEvent
' da como resultado que el SDK de JavaScript de AccessEnabler active las llamadas de retorno de los informes de errores avanzados.
handlerName
: una cadena que especifica el nombre de la función de controlador de errores, si es nulo o faltan todos los controladores adjuntos para el especificado eventType
se eliminará.
Ambos parámetros de enlace solo deben utilizar caracteres del siguiente conjunto: [0-9a-zA-Z][-._a-zA-Z0-9]
; es decir, los parámetros deben comenzar con un número o una letra y, a continuación, solo pueden incluir guiones, puntos, guiones bajos y caracteres alfanuméricos. Además, los parámetros no pueden superar los 1024 caracteres.
Ejemplo de eliminar un solo controlador de error:
accessEnabler.unbind('errorEvent', 'errorLogger');
Ejemplo eliminar todos los controladores de error:
accessEnabler.unbind('errorEvent');
SDK de AccessEnabler para iOS/tvOS accessenabler-ios-tvos-sdk
El nuevo sistema de notificación de errores es obligatorio, por lo que el implementador debe ajustarse explícitamente al nuevo protocolo Objective C "EntitlementStatus". Este nuevo enfoque permite a los programadores recibir informes de errores avanzados.
Implementación accessenab-ios-tvossdk-imp
Un implementador debe cumplir con lo siguiente EntitlementStatus protocolo:
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Su status recibirá un solo objeto (un objeto NSDictionary
) con la siguiente estructura:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Declaración
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implementación
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
SDK de Android de AccessEnabler accessenabler-android-sdk
El nuevo sistema de notificación de errores es obligatorio, ya que el implementador debe cumplir explícitamente con la IAccessEnablerDelegate
protocolo definido por la interfaz. Este nuevo enfoque permite a los programadores recibir informes de errores avanzados.
Implementación access-enablr-androidsdk-imp
Un implementador debe gestionar el nuevo status
desde la interfaz deIAccessEnablerDelegate
. El status
función recibirá un solo AdvancedStatus
objeto con el siguiente modelo:
class AdvancedStatus {
String id; // Not Null
String level; // Not Null
String message; // Might be null
String resource; // Might be null
AdvancedStatus(String id, String level, String message, String resource) {
this.id = id;
this.level = level;
this.message = message;
this.resource = resource;
}
//other private/public methods
}
Muestra
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
SDK de AccessEnabler FireOS accessenabler-fireos-sdk
El nuevo sistema de notificación de errores es obligatorio, ya que el implementador debe cumplir explícitamente con la IAccessEnablerDelegate
protocolo definido por la interfaz. Este nuevo enfoque permite a los programadores recibir informes de errores avanzados.
Implementación access-enab-fireos-sdk-
Un implementador debe gestionar el nuevo status
desde la interfaz deIAccessEnablerDelegate
. El status
función recibirá un solo AdvancedStatus
objeto con el siguiente modelo:
class AdvancedStatus {
String id; // Not Null
String level; // Not Null
String message; // Might be null
String resource; // Might be null
AdvancedStatus(String id, String level, String message, String resource) {
this.id = id;
this.level = level;
this.message = message;
this.resource = resource;
}
//other private/public methods
}
Muestra
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Referencia de códigos de error avanzados advanced-error-codes-reference
En la tabla siguiente se enumeran y describen los códigos de error expuestos por la API de error más reciente, junto con las acciones sugeridas para corregirlos:
Indica o solicita al usuario que cierre sesión explícitamente desde Configuración -> Proveedor de TV en iOS/iPadOS.
Cerrar sesión explícitamente desde Configuración -> Proveedor de TV en iOS/iPadOS
- Póngase en contacto con el Adobe para administrar la lista de dominios admitidos para el ID de solicitante utilizado
- iOS: compruebe que está utilizando el certificado correcto y que la firma se ha creado correctamente
- Si lo desea, informe al usuario de que debe volver a iniciar sesión.
[https://]{SP_FQDN\}
en el explorador y acepte manualmente los certificados SSL, por ejemplo, https://api.auth.adobe.com o https://api.auth-staging.adobe.com- Marcar los certificados de proxy como de confianza
Realice acciones para evitar flujos de derechos, ya que es probable que fallen.
: el desarrollador tiene una suplantación no válida.
-El usuario tiene problemas de red y no puede acceder a los dominios de autenticación de Adobe Pass.
Los servidores de autenticación de Adobe Pass no están configurados correctamente.
Nota: En Firefox, aparecerá CFG400 en lugar de CFG404 (limitación del explorador)
-Comprobar la configuración de red/DNS.
-Informar al Adobe.
- Omitir la autenticación de Adobe Pass.
- Informe al Adobe.
- Opcionalmente, presentar una lista de MVPD regulares.
- Presentar una lista de MVPDs regulares.
- Ocultar la opción TempPass.
1. El explorador tiene deshabilitadas las cookies (de terceros) (no se aplica al SDK de JavaScript AccessEnabler versión 4.x)
2. El explorador tiene activada la opción Impedir el seguimiento entre sitios (Safari 11+)
3. La sesión ha caducado
4. El programador llama a las API de autenticación en una sucesión incorrecta
NOTA: Este código de error no está disponible para flujos de autenticación de redireccionamiento de página completa.
2. Solicitar al usuario que deshabilite el seguimiento entre sitios
3. Pedir al usuario que vuelva a autenticarse
4. Llamar a las API en el orden correcto
2. Deshabilitar el seguimiento entre sitios
3. Volver a autenticar
4. N/D
Nota: Se trata del "Error de autenticación genérico" y del "Error de autenticación interna" del sistema de errores original. Este error se eliminará gradualmente.
Nota: Se trata de un error irrecuperable. Informar al usuario de que la aplicación no está disponible.
- JavaScript: Compruebe la declaración del software en la aplicación del sitio web.
Abra un ticket usando Zendesk e informe al usuario que el sistema no está disponible temporalmente
Nota: Se trata de un error irrecuperable. Informar al usuario de que la aplicación no está disponible.
- JavaScript: Compruebe la declaración del software en la aplicación del sitio web.
Abra un ticket usando Zendesk e informe al usuario que el sistema no está disponible temporalmente
Nota: Se trata de un error irrecuperable. Informar al usuario de que la aplicación no está disponible.
- Informar al usuario.
- La clave "message" del mensaje de error PUEDE contener un mensaje más detallado proporcionado por la MVPD.
- Informar al usuario.
- Informar al usuario de que la MVPD ha tenido dificultades y que debe intentarlo más tarde.
Nota: se trata del heredado "Error de autenticación genérica" y "Error de autenticación interna". Este error se eliminará gradualmente.
- Póngase en contacto con el servicio de asistencia técnica de autenticación de Adobe Pass para buscar o configurar el número máximo de recursos permitidos.
La autenticación/autorización no se mantiene más allá de la página actual. Cada carga de página obliga al usuario a autenticarse. Los TTL configurados no se aplican en todas las recargas de página.
- Informar al usuario sobre cómo aumentar el espacio de almacenamiento disponible.
- Como alternativa, cierre la sesión para borrar el almacenamiento.
- Cierre la sesión para borrar el almacenamiento.
Informe de errores original original-error-reporting
En esta sección se describe el sistema original de informe de errores, junto con los códigos de error originales. En el sistema original de informes de errores, AccessEnabler pasa errores a estas dos funciones de devolución de llamada: setAuthenticationStatus()
después de una llamada a checkAuthentication()
; tokenRequestFailed()
, después del error de una llamada a checkAuthorization()
o getAuthorization()
.
Los informes de errores y las API de estado originales siguen funcionando exactamente como antes. Sin embargo, en adelante, las API de informes de errores originales no se actualizarán. Todos los informes de errores nuevos y las actualizaciones de los errores antiguos se reflejarán SOLAMENTE en el nuevo Sistema de informes de errores avanzados.
Si desea ver ejemplos de uso del sistema de notificación de errores original, consulte la Referencia de API de JavaScript:setAuthenticationStatus() y tokenRequestFailed() funciones, Referencia de la API de iOS/tvOS: setAuthenticationStatus()y tokentRequestFailed(), Referencia de API de Android: setAuthenticationStatus() y tokenRequestFailed().