Segnalazione errori error-reporting
Panoramica overview
La segnalazione degli errori nell’autenticazione di Adobe Pass è attualmente implementata in due modi diversi:
-
Segnalazione avanzata degli errori L’implementatore registra un callback di errore in caso di SDK JavaScript per AccessEnabler o implementa un metodo di interfaccia denominato "
status
" in caso di SDK di AccessEnabler iOS/tvOS e SDK per AccessEnabler Android, per ricevere la segnalazione avanzata degli errori. Gli errori sono suddivisi in Informazioni, Avvertenza, e Errore tipi. Questo sistema di reporting è asincrono, in quanto non c'è garanzia dell'ordine in cui verranno attivati più errori. Per informazioni dettagliate sul sistema avanzato di segnalazione degli errori, vedi Segnalazione avanzata degli errori sezione. -
Segnalazione errori originale - Un sistema di reporting statico in cui i messaggi di errore vengono trasmessi a funzioni di callback specifiche quando determinate richieste hanno esito negativo. Gli errori sono raggruppati in tipi generici, di autenticazione e di autorizzazione. Per un elenco degli errori segnalati nel sistema originale, vedere Segnalazione errori originale sezione.
Segnalazione avanzata degli errori advanced-error-reporting
SDK JavaScript per AccessEnabler accessenabler-javascript-sdk
Il nuovo sistema di segnalazione degli errori rimane facoltativo, pertanto l’implementatore può registrare esplicitamente un callback del gestore degli errori per ricevere segnalazioni avanzate degli errori. Il sistema include la possibilità di registrare e annullare la registrazione di più callback di errore in modo dinamico. Inoltre, è possibile registrare qualsiasi nuovo callback di errore non appena viene caricato l’SDK JavaScript di AccessEnabler, senza dover eseguire altre inizializzazioni (prima della chiamata setRequestor()
), il che significa che puoi ricevere report avanzati sugli errori di inizializzazione e configurazione.
Implementazione access-enab-js-imp
yourErrorHandler(errorData:Object)
La funzione di callback del gestore degli errori riceverà un singolo oggetto (una mappa) con la seguente struttura:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Legare bind
.bind(eventType:String, handlerName:String):void
Collega un gestore per un evento.
eventType
- SOLO il "errorEvent
Il valore " genera nell’SDK JavaScript di AccessEnabler l’attivazione di callback di report di errori avanzati.
handlerName
- una stringa che specifica il nome della funzione di gestione degli errori.
Entrambi i parametri di associazione devono utilizzare solo caratteri del seguente set: [0-9a-zA-Z][-._a-zA-Z0-9]
I parametri devono iniziare con un numero o una lettera e possono quindi includere solo trattini, punti, trattini bassi e caratteri alfanumerici. Inoltre, i parametri non possono superare i 1024 caratteri.
Esempio di gestori di errori di associazione:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
A causa di limitazioni tecniche, non è possibile associare una chiusura o una funzione anonima. È necessario specificare il nome del metodo nel secondo parametro.
2. Separa unbind
.unbind(eventType:String, handlerName:String=null):void
Rimuove un gestore eventi precedentemente associato.
eventType
- SOLO "errorEvent
Il valore ' determina l'attivazione da parte dell'SDK JavaScript di AccessEnabler di callback di report di errori avanzati.
handlerName
- una stringa che specifica il nome della funzione del gestore errori, se null o mancano tutti i gestori associati per il eventType
verrà rimosso.
Entrambi i parametri di associazione devono utilizzare solo caratteri del seguente set: [0-9a-zA-Z][-._a-zA-Z0-9]
I parametri devono iniziare con un numero o una lettera e possono quindi includere solo trattini, punti, trattini bassi e caratteri alfanumerici. Inoltre, i parametri non possono superare i 1024 caratteri.
Esempio di rimozione di un singolo gestore degli errori:
accessEnabler.unbind('errorEvent', 'errorLogger');
Esempio rimozione di tutti i gestori errori:
accessEnabler.unbind('errorEvent');
SDK di AccessEnabler iOS/tvOS accessenabler-ios-tvos-sdk
Il nuovo sistema di segnalazione degli errori è obbligatorio, pertanto l’implementatore deve conformarsi esplicitamente al nuovo protocollo "EntitlementStatus" dell’Obiettivo C. Questo nuovo approccio consente ai programmatori di ricevere report avanzati sugli errori.
Implementazione accessenab-ios-tvossdk-imp
Un implementatore deve conformarsi a quanto segue EntitlementStatus protocollo:
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Il tuo stato la funzione riceverà un singolo oggetto (un NSDictionary
) con la seguente struttura:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Dichiarazione
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implementazione
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
SDK per AccessEnabler Android accessenabler-android-sdk
Il nuovo sistema di segnalazione degli errori è obbligatorio, perché l’implementatore deve essere esplicitamente conforme al IAccessEnablerDelegate
protocollo definito dall'interfaccia. Questo nuovo approccio consente ai programmatori di ricevere report avanzati sugli errori.
Implementazione access-enablr-androidsdk-imp
Un implementatore deve gestire il nuovo status
metodo dall’interfacciaIAccessEnablerDelegate
. Il status
la funzione riceverà un singolo AdvancedStatus
oggetto con il seguente modello:
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
}
Esempio
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
SDK di AccessEnabler FireOS accessenabler-fireos-sdk
Il nuovo sistema di segnalazione degli errori è obbligatorio, perché l’implementatore deve essere esplicitamente conforme al IAccessEnablerDelegate
protocollo definito dall'interfaccia. Questo nuovo approccio consente ai programmatori di ricevere report avanzati sugli errori.
Implementazione access-enab-fireos-sdk-
Un implementatore deve gestire il nuovo status
metodo dall’interfacciaIAccessEnablerDelegate
. Il status
la funzione riceverà un singolo AdvancedStatus
oggetto con il seguente modello:
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
}
Esempio
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Riferimento codici di errore avanzati advanced-error-codes-reference
La tabella seguente elenca e descrive i codici di errore esposti dalla nuova API di errore, insieme alle azioni suggerite da intraprendere per correggerli:
Indica/richiede all’utente di disconnettersi esplicitamente da Impostazioni -> Provider TV su iOS/iPadOS.
Esci esplicitamente da Impostazioni -> Provider TV su iOS/iPadOS
- Contatta l’Adobe per gestire la whitelist del dominio per l’ID richiedente utilizzato
- iOS: verifica di utilizzare il certificato corretto e che la firma sia stata creata correttamente
- Facoltativamente, informare l'utente che deve effettuare di nuovo l'accesso.
[https://]{SP_FQDN\}
nel browser e accettare manualmente i certificati SSL, ad esempio, https://api.auth.adobe.com o https://api.auth-staging.adobe.com- Contrassegna i certificati proxy come attendibili
Adottare misure per evitare flussi di diritti, poiché probabilmente non riusciranno.
- Lo sviluppatore dispone di uno spoofing non valido.
-L’utente ha problemi di rete e non può raggiungere i domini di autenticazione di Adobe Pass.
-I server di autenticazione di Adobe Pass non sono configurati correttamente.
Nota: Su Firefox, viene visualizzato CFG400 invece di CFG404 (limitazione del browser)
-Controllare le impostazioni di rete/DNS.
-Informa Adobe.
- Ignora l'autenticazione Adobe Pass.
- Adobe informativo.
- Facoltativamente presentare un elenco di MVPD regolari.
- Presentare un elenco di MVPD regolari.
- Nasconde l'opzione TempPass.
1. Il browser ha i cookie (di terze parti) disabilitati (non applicabile per AccessEnabler JavaScript SDK versione 4.x)
2. Il browser ha abilitato l’opzione Impedisci il rilevamento intersito (Safari 11+)
3. Sessione scaduta
4. Il programmatore chiama le API di autenticazione con una successione errata
NOTA: questo codice di errore non è disponibile per i flussi di autenticazione di reindirizzamento a pagina intera.
2. Richiedi all'utente di disattivare il tracciamento intersito
3. Richiedi all'utente di ripetere l'autenticazione
4. Chiamare le API nell’ordine corretto
2. Disattiva il tracciamento intersito
3. Ripeti autenticazione
4. N/D
Nota: questo è l’errore originale del sistema "Errore di autenticazione generico" e "Errore di autenticazione interna". Questo errore verrà gradualmente eliminato.
Nota: si tratta di un errore irreversibile. Informare l'utente che l'applicazione non è disponibile.
- JavaScript: controlla l’istruzione software nell’applicazione del sito web.
Apri un ticket utilizzando Zendesk e informa l’utente che il sistema è temporaneamente non disponibile
Nota: si tratta di un errore irreversibile. Informare l'utente che l'applicazione non è disponibile.
- JavaScript: controlla l’istruzione software nell’applicazione del sito web.
Apri un ticket utilizzando Zendesk e informa l’utente che il sistema è temporaneamente non disponibile
Nota: si tratta di un errore irreversibile. Informare l'utente che l'applicazione non è disponibile.
- Informare l'utente.
- La chiave "message" nel messaggio di errore PUÒ contenere un messaggio più dettagliato fornito dall'MVPD.
- Informare l'utente.
- Informare l'utente che l'MVPD ha incontrato difficoltà e riprovare più tardi.
Nota: si tratta dei precedenti "Errore di autenticazione generica" e "Errore di autenticazione interna". Questo errore verrà gradualmente eliminato.
- Contatta il supporto per l’autenticazione di Adobe Pass per trovare/impostare il numero massimo di risorse consentite.
L'autenticazione/autorizzazione non persiste oltre la pagina corrente. A ogni caricamento di pagina l’utente dovrà eseguire l’autenticazione. I TTL configurati non vengono applicati nei diversi ricaricamenti delle pagine.
- Informare l'utente su come aumentare lo spazio di archiviazione disponibile.
- In alternativa, disconnettersi per cancellare l'archiviazione.
- Disconnettersi per cancellare l'archiviazione.
Segnalazione errori originale original-error-reporting
Questa sezione descrive il sistema di segnalazione degli errori originale e i codici di errore originali. Nel sistema di segnalazione degli errori originale, AccessEnabler trasmette gli errori alle due funzioni di callback seguenti: setAuthenticationStatus()
dopo una chiamata a checkAuthentication()
; tokenRequestFailed()
, dopo il guasto di una chiamata a checkAuthorization()
o getAuthorization()
.
La segnalazione degli errori originale e le API di stato continuano a funzionare esattamente come prima. Tuttavia, andando avanti le API di segnalazione errori originali non verranno aggiornate. Tutte le nuove segnalazioni di errori e gli aggiornamenti sui vecchi errori verranno rispecchiati SOLO nel nuovo Sistema di Segnalazione avanzata degli errori.
Per esempi di utilizzo del sistema di segnalazione errori originale, vedere Riferimento API per JavaScript:setAuthenticationStatus() e tokenRequestFailed() funzioni, Riferimento API per iOS/tvOS: setAuthenticationStatus()e tokentRequestFailed(), Riferimento API per Android: setAuthenticationStatus() e tokenRequestFailed().