Fout bij rapporteren error-reporting
Overzicht overview
Foutrapportage in Adobe Pass-verificatie wordt momenteel op twee verschillende manieren geïmplementeerd:
-
Geavanceerde foutrapportage De uitvoerder registreert een foutencallback in het geval van AccessEnabler JavaScript SDK of implementeert een interfacemethode met de naam "
status
" in geval van de AccessEnabler iOS/tvOS SDK en AccessEnabler Android-SDKom geavanceerde foutmeldingen te ontvangen. Fouten worden ingedeeld in Informatie, Waarschuwing, en Fout typen. Dit rapportagesysteem is asynchroon in er is geen garantie voor de volgorde waarin meerdere fouten zullen optreden. Zie voor meer informatie over het geavanceerde systeem voor foutmeldingen Geavanceerde foutrapportage sectie. -
Oorspronkelijke foutmelding - Een statisch rapporterend systeem waarin de foutenmeldingen tot specifieke callback functies worden overgegaan wanneer de specifieke verzoeken ontbreken. De fouten worden gegroepeerd in generische, authentificatie, en toestemmingstypes. Zie voor de lijst met fouten die in het oorspronkelijke systeem zijn vermeld de klasse Oorspronkelijke foutrapportage sectie.
Geavanceerde foutrapportage advanced-error-reporting
AccessEnabler JavaScript SDK accessenabler-javascript-sdk
Het nieuwe fout rapporterend systeem wordt verlaten facultatief, daarom kan de implementor een callback van de foutenmanager uitdrukkelijk registreren om geavanceerde foutenrapporten te ontvangen. Het systeem bevat de mogelijkheid om meerdere callbacks met foutmeldingen dynamisch te registreren en de registratie ervan ongedaan te maken. Bovendien kunt u om het even welke nieuwe foutencallbacks registreren zodra AccessEnabler JavaScript SDK wordt geladen, zonder de behoefte om een andere initialisatie uit te voeren (alvorens te roepen setRequestor()
), wat betekent dat u de capaciteit hebt om geavanceerde rapporten over initialisatie en configuratiefouten te ontvangen.
Implementatie access-enab-js-imp
yourErrorHandler(errorData:Object)
De callback-functie van de fouthandler ontvangt één object (een kaart) met de volgende structuur:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Binding bind
.bind(eventType:String, handlerName:String):void
Koppelt een handler voor een gebeurtenis.
eventType
- ALLEEN de "errorEvent
" resulteert in de AccessEnabler JavaScript SDK die geavanceerde callbacks van foutenrapporten teweegbrengt.
handlerName
- een tekenreeks die de naam van de fouthandlerfunctie opgeeft.
Beide binden parameters mogen alleen tekens uit de volgende set gebruiken: [0-9a-zA-Z][-._a-zA-Z0-9]
; parameters moeten dus beginnen met een getal of letter en kunnen alleen afbreekstreepjes, punten, onderstrepingstekens en alfanumerieke tekens bevatten. Bovendien mogen parameters niet langer zijn dan 1024 tekens.
Voorbeeld van bindingsfouthandlers:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
Vanwege technische beperkingen kunt u geen sluiting of anonieme functie binden. U moet de naam van de methode opgeven in de tweede parameter.
2. Binding opheffen unbind
.unbind(eventType:String, handlerName:String=null):void
Hiermee wordt een eerder gekoppelde gebeurtenishandler verwijderd.
eventType
- ALLEEN de 'errorEvent
' resulteert in de AccessEnabler JavaScript SDK die geavanceerde callbacks van foutrapporten veroorzaakt.
handlerName
- een tekenreeks die de naam van de functie van de fouthandler opgeeft, indien deze null is of ontbreekt, alle gekoppelde handlers voor de opgegeven eventType
wordt verwijderd.
Beide binden parameters mogen alleen tekens uit de volgende set gebruiken: [0-9a-zA-Z][-._a-zA-Z0-9]
; parameters moeten dus beginnen met een getal of letter en kunnen alleen afbreekstreepjes, punten, onderstrepingstekens en alfanumerieke tekens bevatten. Bovendien mogen parameters niet langer zijn dan 1024 tekens.
Voorbeeld van het verwijderen van één fouthandler:
accessEnabler.unbind('errorEvent', 'errorLogger');
Voorbeeld verwijderen van alle fouthandlers:
accessEnabler.unbind('errorEvent');
AccessEnabler iOS/tvOS SDK accessenabler-ios-tvos-sdk
Het nieuwe systeem voor foutenrapportage is verplicht, daarom moet de uitvoerder expliciet voldoen aan het nieuwe "EntitlementStatus"-protocol van doelstelling C. Deze nieuwe benadering staat programmeurs toe om geavanceerde foutenrapportering te ontvangen.
Implementatie accessenab-ios-tvossdk-imp
Een uitvoerder moet aan het volgende voldoen EntitlementStatus protocol:
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Uw status functie ontvangt één object (en NSDictionary
) met de volgende structuur:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Verklaring
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implementatie
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
AccessEnabler Android-SDK accessenabler-android-sdk
Het nieuwe systeem voor foutmeldingen is verplicht, omdat de implementator expliciet moet voldoen aan de IAccessEnablerDelegate
interface bepaald protocol. Deze nieuwe benadering staat programmeurs toe om geavanceerde foutenrapportering te ontvangen.
Implementatie access-enablr-androidsdk-imp
Een uitvoerder moet de nieuwe status
methode van de interfaceIAccessEnablerDelegate
. De status
function ontvangt één functie AdvancedStatus
object met het volgende model:
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
}
Monster
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
AccessEnabler FireOS SDK accessenabler-fireos-sdk
Het nieuwe systeem voor foutmeldingen is verplicht, omdat de implementator expliciet moet voldoen aan de IAccessEnablerDelegate
interface bepaald protocol. Deze nieuwe benadering staat programmeurs toe om geavanceerde foutenrapportering te ontvangen.
Implementatie access-enab-fireos-sdk-
Een uitvoerder moet de nieuwe status
methode van de interfaceIAccessEnablerDelegate
. De status
function ontvangt één functie AdvancedStatus
object met het volgende model:
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
}
Monster
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Verwijzing naar geavanceerde foutcodes advanced-error-codes-reference
In de volgende tabel worden de foutcodes weergegeven en beschreven die door de nieuwere API voor fouten worden weergegeven, samen met de voorgestelde handelingen die moeten worden uitgevoerd om deze te corrigeren:
Geef de gebruiker de opdracht om zich expliciet af te melden bij Settings -> TV Provider op iOS/iPadOS.
Afmelden bij Instellingen -> TV-provider op iOS/iPadOS
- Neem contact op met de Adobe om de whitelist van het domein voor de gebruikte id van de aanvrager te beheren
- iOS: controleer of u het juiste certificaat gebruikt en of de handtekening op de juiste manier is gemaakt
- Informeer desgewenst de gebruiker dat hij zich opnieuw moet aanmelden.
[https://]{SP_FQDN\}
in de browser en de SSL-certificaten handmatig accepteren, bijvoorbeeld https://api.auth.adobe.com of https://api.auth-staging.adobe.com- De proxyceringen markeren als vertrouwd
Voer handelingen uit om machtigingsstromen te voorkomen, omdat deze waarschijnlijk mislukken.
- De ontwikkelaar beschikt over een ongeldige spoofing.
- De gebruiker heeft netwerkproblemen en kan de Adobe Pass-verificatiedomeinen niet bereiken.
-Adobe Pass-verificatieservers zijn onjuist geconfigureerd.
Opmerking: Bij Firefox wordt CFG400 weergegeven in plaats van CFG404 (browserbeperking)
-Controleer de netwerk-/DNS-instellingen.
-Informeer Adobe.
- Adobe Pass-verificatie omzeilen.
- Informeer Adobe.
- Naar keuze een lijst van normale MVPD's presenteren.
- Een lijst met normale MVPD's presenteren.
- Verberg de optie Temperatuur passeren.
1. Browser heeft (derde) cookies uitgeschakeld (niet van toepassing op AccessEnabler JavaScript SDK versie 4.x)
2. Browser heeft Enable cross-site tracking (Safari 11+)
3. Sessie is verlopen
4. De programmeur roept authentificatie APIs in onjuiste opeenvolging aan
OPMERKING: deze foutcode is niet beschikbaar voor omleidingsstromen van volledige pagina's.
2. Gebruiker vragen om het bijhouden van meerdere sites uit te schakelen
3. Gebruiker vragen opnieuw te verifiëren
4. API's aanroepen in de juiste volgorde
2. Spatiëring tussen sites uitschakelen
3. Opnieuw verifiëren
4. NVT
Opmerking: dit is de 'Generic Authentication Error' en 'Internal Authentication Error' van het oorspronkelijke foutsysteem. Deze fout zal uiteindelijk worden opgeheven.
Opmerking: dit is een onherstelbare fout. Vertel de gebruiker dat de toepassing niet beschikbaar is.
- JavaScript: controleer de softwareinstructie in uw websitetoepassing.
Een ticket openen met Zendesk en de gebruiker laten weten dat het systeem tijdelijk niet beschikbaar is
Opmerking: dit is een onherstelbare fout. Vertel de gebruiker dat de toepassing niet beschikbaar is.
- JavaScript: controleer de softwareinstructie in uw websitetoepassing.
Een ticket openen met Zendesk en de gebruiker laten weten dat het systeem tijdelijk niet beschikbaar is
Opmerking: dit is een onherstelbare fout. Vertel de gebruiker dat de toepassing niet beschikbaar is.
- Informeer de gebruiker.
- De "message"-sleutel in het foutbericht KAN een gedetailleerder bericht bevatten dat door het MVPD wordt verstrekt.
- Informeer de gebruiker.
- Informeer de gebruiker dat de MVPD problemen ondervond en ze moeten het later proberen.
Opmerking: dit is de verouderde 'Generic Authentication Error' en 'Internal Authentication Error'. Deze fout zal uiteindelijk worden opgeheven.
- Neem contact op met de ondersteuning van Adobe Pass-verificatie om het maximumaantal toegestane bronnen te zoeken/in te stellen.
Verificatie/autorisatie blijft op de huidige pagina staan. Bij elke pagina die wordt geladen, moet de gebruiker worden geverifieerd. Gevormde TTLs wordt niet afgedwongen over paginaatherladingen.
- Informeer de gebruiker hoe de beschikbare opslagruimte kan worden vergroot.
- U kunt zich ook afmelden om de opslag te wissen.
- Afmelden om opslag te wissen.
Oorspronkelijke foutrapportage original-error-reporting
In deze sectie wordt het oorspronkelijke systeem voor foutrapportage beschreven, samen met de oorspronkelijke foutcodes. In het originele fout rapporterend systeem, gaat AccessEnabler fouten tot deze twee callback functies over: setAuthenticationStatus()
na een vraag aan checkAuthentication()
; tokenRequestFailed()
, na het mislukken van een oproep tot checkAuthorization()
of getAuthorization()
.
De oorspronkelijke foutrapportage en status-API's werken nog steeds precies zo als voorheen. De oorspronkelijke API's voor foutrapportage worden echter niet bijgewerkt. Alle nieuwe foutmeldingen en updates over de oude fouten worden ALLEEN weergegeven in het nieuwe Geavanceerd systeem voor foutmelding.
Voor voorbeelden van het gebruik van het oorspronkelijke systeem voor foutmeldingen raadpleegt u de JavaScript API-naslag:setAuthenticationStatus() en tokenRequestFailed() functies, iOS/tvOS API-naslaggids: setAuthenticationStatus()en tokentRequestFailed(), Referentie voor Android API: setAuthenticationStatus() en tokenRequestFailed().