Rapport d’erreurs error-reporting
Présentation overview
Le rapport d’erreurs dans l’authentification Adobe Primetime est actuellement implémenté de deux manières différentes :
-
Rapport d’erreurs avancé L’implémentateur enregistre un rappel d’erreur en cas de SDK JavaScript AccessEnabler ou met en oeuvre une méthode d’interface nommée "
status" en cas de SDK AccessEnabler iOS/tvOS et SDK Android AccessEnabler, afin de recevoir des rapports d’erreur avancés. Les erreurs sont classées dans Informations, Avertissement, et Erreur types. Ce système de reporting est asynchrone, dans l’ordre dans lequel plusieurs erreurs seront déclenchées n’est pas garanti.. Pour plus d’informations sur le système avancé de reporting des erreurs, voir Rapport d’erreurs avancé . -
Rapport d’erreurs initial - Système de création de rapports statique dans lequel les messages d’erreur sont transmis à des fonctions de rappel spécifiques en cas d’échec de requêtes spécifiques. Les erreurs sont regroupées en types génériques, d’authentification et d’autorisation. Pour obtenir la liste des erreurs signalées dans le système d’origine, reportez-vous au Rapport d’erreurs d’origine .
Rapport d’erreurs avancé advanced-error-reporting
SDK JavaScript AccessEnabler accessenabler-javascript-sdk
Le nouveau système de création de rapports d’erreurs est facultatif. Par conséquent, l’implémentateur peut enregistrer explicitement un rappel de gestionnaire d’erreurs pour recevoir des rapports d’erreur avancés. Le système offre la possibilité d’enregistrer et d’annuler l’enregistrement dynamique de plusieurs rappels d’erreur. En outre, vous pouvez enregistrer de nouveaux rappels d’erreur dès que le SDK JavaScript AccessEnabler est chargé, sans avoir à effectuer d’autre initialisation (avant d’appeler setRequestor()), ce qui signifie que vous pouvez recevoir des rapports avancés sur les erreurs d’initialisation et de configuration.
Implémentation access-enab-js-imp
yourErrorHandler(errorData:Object)
Votre fonction de rappel de gestionnaire d’erreurs recevra un seul objet (une carte) avec la structure suivante :
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Liaison bind
.bind(eventType:String, handlerName:String):void
Joint un gestionnaire pour un événement.
eventType - UNIQUEMENT le "errorEvent" entraîne le déclenchement par le SDK JavaScript AccessEnabler de rappels avancés de rapports d’erreur.
handlerName - chaîne spécifiant le nom de la fonction du gestionnaire d’erreurs.
Les deux paramètres de liaison ne doivent utiliser que les caractères de l’ensemble suivant : [0-9a-zA-Z][-._a-zA-Z0-9], c’est-à-dire que les paramètres doivent commencer par un nombre ou une lettre, et peuvent ensuite inclure uniquement des tirets, des points, des traits de soulignement et des caractères alphanumériques. En outre, les paramètres ne peuvent pas dépasser 1 024 caractères.
Exemple des gestionnaires d’erreurs de liaison :
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
En raison de limitations techniques, vous ne pouvez pas lier une fermeture ou une fonction anonyme. Vous devez spécifier le nom de la méthode dans le deuxième paramètre.
2. Délier unbind
.unbind(eventType:String, handlerName:String=null):void
Supprime un gestionnaire d’événements précédemment joint.
eventType - SEULEMENT LE "errorEventLa valeur "" entraîne le déclenchement du SDK JavaScript AccessEnabler, déclenchant des rappels avancés des rapports d’erreur.
handlerName - chaîne spécifiant le nom de la fonction du gestionnaire d’erreurs, si est nul ou si tous les gestionnaires associés sont manquants pour la fonction spécifiée eventType sera supprimé.
Les deux paramètres de liaison ne doivent utiliser que les caractères de l’ensemble suivant : [0-9a-zA-Z][-._a-zA-Z0-9], c’est-à-dire que les paramètres doivent commencer par un nombre ou une lettre, et peuvent ensuite inclure uniquement des tirets, des points, des traits de soulignement et des caractères alphanumériques. En outre, les paramètres ne peuvent pas dépasser 1 024 caractères.
Exemple de suppression d’un seul gestionnaire d’erreurs :
accessEnabler.unbind('errorEvent', 'errorLogger');
Exemple suppression de tous les gestionnaires d’erreurs :
accessEnabler.unbind('errorEvent');
SDK AccessEnabler iOS/tvOS accessenabler-ios-tvos-sdk
Le nouveau système de reporting des erreurs est obligatoire. Par conséquent, l’implémentateur doit se conformer explicitement au nouveau protocole Objective C "EntitlementStatus". Cette nouvelle approche permet aux programmeurs de recevoir des rapports d’erreur avancés.
Implémentation accessenab-ios-tvossdk-imp
Un implémentateur doit se conformer aux EntitlementStatus protocole :
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Votre status reçoit un seul objet (une NSDictionary) avec la structure suivante :
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Déclaration
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implémentation
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
SDK Android AccessEnabler accessenabler-android-sdk
Le nouveau système de reporting des erreurs est obligatoire, car l’implémentateur doit se conformer explicitement à la variable IAccessEnablerDelegate protocole défini par l’interface. Cette nouvelle approche permet aux programmeurs de recevoir des rapports d’erreur avancés.
Implémentation access-enablr-androidsdk-imp
Un implémentateur doit gérer la nouvelle status de l’interfaceIAccessEnablerDelegate. La variable status reçoit une seule AdvancedStatus ayant le modèle suivant :
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
}
Exemple
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
SDK AccessEnabler FireOS accessenabler-fireos-sdk
Le nouveau système de reporting des erreurs est obligatoire, car l’implémentateur doit se conformer explicitement à la variable IAccessEnablerDelegate protocole défini par l’interface. Cette nouvelle approche permet aux programmeurs de recevoir des rapports d’erreur avancés.
Implémentation access-enab-fireos-sdk-
Un implémentateur doit gérer la nouvelle statusde l’interfaceIAccessEnablerDelegate. La variable status reçoit une seule AdvancedStatus ayant le modèle suivant :
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
}
Exemple
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Référence des codes d’erreur avancés advanced-error-codes-reference
Le tableau suivant répertorie et décrit les codes d’erreur exposés par la nouvelle API d’erreur, ainsi que les actions suggérées pour les corriger :
Demandez à l’utilisateur de se déconnecter explicitement de Settings -> TV Provider sur iOS/iPadOS.
Déconnexion explicite de Paramètres -> Fournisseur de télévision sur iOS/iPadOS
- Contactez l’Adobe afin de gérer la liste blanche des domaines pour l’identifiant du demandeur utilisé.
- iOS : vérifiez que vous utilisez le certificat correct et que la signature est correctement créée.
- Si vous le souhaitez, informez l’utilisateur qu’il doit se reconnecter.
[https://]{SP_FQDN\} dans le navigateur et acceptez manuellement les certificats SSL, par exemple : https://api.auth.adobe.com ou https://api.auth-staging.adobe.com- Marquer les certificats du proxy comme étant approuvés
Prenez des mesures pour empêcher les flux de droits, car ils vont probablement échouer.
- Le développeur a mis en place une usurpation non valide.
- L’utilisateur rencontre des problèmes de mise en réseau et ne peut pas accéder aux domaines d’authentification Adobe Primetime.
- Les serveurs d’authentification Adobe Primetime sont mal configurés.
Remarque : Sous Firefox, CFG400 apparaîtra à la place de CFG404 (limite de navigateur).
-Vérifiez les paramètres réseau/DNS.
- Informe l’Adobe.
- Contournement de l’authentification Adobe Primetime.
- Informer l’Adobe.
- Vous pouvez éventuellement présenter une liste de MVPD standard.
- Présenter une liste de MVPD standard.
- Masquez l’option TempPass .
1. Les cookies (tiers) du navigateur sont désactivés (non applicable pour le SDK JavaScript AccessEnabler version 4.x)
2. Le navigateur a activé l’option Empêcher le suivi sur plusieurs sites (Safari 11+)
3. La session a expiré
4. Le programmeur appelle les API d’authentification en succession incorrecte
REMARQUE : Ce code d’erreur n’est pas disponible pour les flux d’authentification de redirection de page entière.
2. Demander à l’utilisateur de désactiver le suivi intersite
3. Demander à l’utilisateur de se reconnecter
4. Appeler les API dans le bon ordre
2. Désactivation du suivi sur plusieurs sites
3. Reconnecter
4. N/A
Remarque : Il s’agit de l’erreur "Erreur d’authentification générique" et "Erreur d’authentification interne" du système d’erreur d’origine. Cette erreur finira par disparaître progressivement.
Remarque : il s’agit d’une erreur irrécupérable. Informez l’utilisateur que l’application n’est pas disponible.
- JavaScript : vérifiez l’instruction logicielle dans l’application de votre site web.
Ouvrez un ticket à l’aide de Zendesk et informez l’utilisateur que le système est temporairement indisponible.
Remarque : il s’agit d’une erreur irrécupérable. Informez l’utilisateur que l’application n’est pas disponible.
- JavaScript : vérifiez l’instruction logicielle dans l’application de votre site web.
Ouvrez un ticket à l’aide de Zendesk et informez l’utilisateur que le système est temporairement indisponible.
Remarque : il s’agit d’une erreur irrécupérable. Informez l’utilisateur que l’application n’est pas disponible.
- Informer l’utilisateur.
- La clé 'message' du message d'erreur PEUT contenir un message plus détaillé fourni par le MVPD.
- Informer l’utilisateur.
- Informez l’utilisateur que le MVPD a rencontré des difficultés et qu’il doit réessayer ultérieurement.
Remarque : Il s’agit de l’ancienne erreur "Erreur d’authentification générique" et "Erreur d’authentification interne". Cette erreur finira par disparaître progressivement.
- Contactez le support d’authentification Adobe Primetime pour rechercher/configurer le nombre maximum de ressources autorisées.
L’authentification/l’autorisation ne persiste pas au-delà de la page actuelle. À chaque chargement de page, l’utilisateur doit s’authentifier. Les TTL configurés ne sont pas appliqués lors des rechargements de page.
- Informer l’utilisateur sur la manière d’augmenter l’espace de stockage disponible.
- Vous pouvez également vous déconnecter afin d’effacer le stockage.
- Déconnectez-vous afin d’effacer le stockage.
Rapport d’erreurs d’origine original-error-reporting
Cette section décrit le système de reporting des erreurs d’origine, ainsi que les codes d’erreur d’origine. Dans le système de reporting des erreurs d'origine, AccessEnabler transmet les erreurs à ces deux fonctions de rappel : setAuthenticationStatus() après un appel à checkAuthentication(); tokenRequestFailed(), après l’échec d’un appel à la fonction checkAuthorization() ou getAuthorization().
Les rapports d’erreur d’origine et les API d’état continuent de fonctionner exactement comme auparavant. Toutefois, à l’avenir, les API de création de rapports d’erreur d’origine ne seront pas mises à jour. Tous les nouveaux rapports d’erreur et mises à jour sur les anciennes erreurs seront UNIQUEMENT répercutés dans la nouvelle Système de création de rapports d’erreurs avancé.
Pour obtenir des exemples d’utilisation du système de reporting des erreurs d’origine, reportez-vous à la section Référence de l’API JavaScript:setAuthenticationStatus() et tokenRequestFailed() fonctions, Référence de l’API iOS/tvOS: setAuthenticationStatus()et tokentRequestFailed(), Référence de l’API Android: setAuthenticationStatus() et tokenRequestFailed().