Relatório de erros error-reporting
Visão geral overview
O relatório de erros na Autenticação do Adobe Pass está implementado atualmente de duas maneiras diferentes:
-
Relatório de Erros Avançado O implementador registra um retorno de chamada de erro no caso do SDK JavaScript do AccessEnabler ou implementa um método de Interface chamado "
status
" no caso do SDK iOS/tvOS do AccessEnabler e do SDK Android do AccessEnabler, para receber relatórios de erros avançados. Os erros são categorizados em Informações, Aviso e Erro tipos. Este sistema de relatório é assíncrono, pois não há garantia da ordem em que vários erros serão acionados. Para obter detalhes sobre o sistema avançado de relatório de erros, consulte a seção Relatório de Erros Avançado. -
Relatório de Erros Original - Um sistema de relatório estático no qual mensagens de erro são passadas para funções de retorno de chamada específicas quando solicitações específicas falham. Os erros são agrupados em tipos genéricos, de autenticação e de autorização. Para obter a lista de erros relatados no sistema original, consulte a seção Relatório de Erros Original.
Relatório de Erros Avançado advanced-error-reporting
SDK do JavaScript do AccessEnabler accessenabler-javascript-sdk
O novo sistema de relatório de erros é opcional, portanto, o implementador pode registrar explicitamente um retorno de chamada de manipulador de erros para receber relatórios de erros avançados. O sistema inclui a capacidade de registrar e cancelar o registro de vários retornos de chamada de erro dinamicamente. Além disso, você pode registrar novos retornos de chamada de erro assim que o SDK JavaScript do AccessEnabler for carregado, sem a necessidade de executar outra inicialização (antes de chamar setRequestor()
), o que significa que você tem a capacidade de receber relatórios avançados sobre erros de inicialização e configuração.
Implementação access-enab-js-imp
yourErrorHandler(errorData:Object)
Sua função de retorno de chamada do manipulador de erros receberá um único objeto (um mapa) com a seguinte estrutura:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Vincular bind
.bind(eventType:String, handlerName:String):void
Anexa um manipulador para um evento.
eventType
- SOMENTE o valor "errorEvent
" resulta no SDK JavaScript do AccessEnabler acionando retornos de chamada de relatórios de erro avançados.
handlerName
- uma cadeia de caracteres especificando o nome da função do manipulador de erros.
Ambos os parâmetros de associação devem usar apenas caracteres do seguinte conjunto: [0-9a-zA-Z][-._a-zA-Z0-9]
; ou seja, os parâmetros devem começar com um número ou uma letra e podem incluir apenas hifens, pontos, sublinhados e caracteres alfanuméricos. Além disso, os parâmetros não podem exceder 1024 caracteres.
Exemplo de manipuladores de erro de associação:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
Devido a limitações técnicas, você não pode vincular um fechamento ou uma função anônima. Você deve especificar o nome do método no segundo parâmetro.
2. Desvincular unbind
.unbind(eventType:String, handlerName:String=null):void
Remove um manipulador de eventos anexado anteriormente.
eventType
- SOMENTE o valor 'errorEvent
' resulta no SDK JavaScript do AccessEnabler disparando retornos de chamada de relatórios de erro avançados.
handlerName
- uma cadeia de caracteres especificando o nome da função do manipulador de erros; se for nula, ou estiver faltando, todos os manipuladores anexados para o eventType
especificado serão removidos.
Ambos os parâmetros de associação devem usar apenas caracteres do seguinte conjunto: [0-9a-zA-Z][-._a-zA-Z0-9]
; ou seja, os parâmetros devem começar com um número ou uma letra e podem incluir apenas hifens, pontos, sublinhados e caracteres alfanuméricos. Além disso, os parâmetros não podem exceder 1024 caracteres.
Exemplo de remoção de um único manipulador de erros:
accessEnabler.unbind('errorEvent', 'errorLogger');
Exemplo removendo todos os manipuladores de erro:
accessEnabler.unbind('errorEvent');
AccessEnabler iOS/tvOS SDK accessenabler-ios-tvos-sdk
O novo sistema de relatório de erros é obrigatório, portanto, o implementador deve estar em conformidade explícita com o novo protocolo "EntitlementStatus" do Objetive C. Essa nova abordagem permite que os programadores recebam relatórios avançados de erros.
Implementação accessenab-ios-tvossdk-imp
Um implementador precisa estar em conformidade com o seguinte protocolo EntitlementStatus:
StatusDireito.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Sua função status receberá um único objeto (um NSDictionary
) com a seguinte estrutura:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Declaração
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implementação
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
SDK do Android do AccessEnabler accessenabler-android-sdk
O novo sistema de relatório de erros é obrigatório porque o implementador deve estar em conformidade explícita com o protocolo definido pela interface IAccessEnablerDelegate
. Essa nova abordagem permite que os programadores recebam relatórios avançados de erros.
Implementação access-enablr-androidsdk-imp
Um implementador precisa manipular o novo método status
da interfaceIAccessEnablerDelegate
. A função status
receberá um único objeto AdvancedStatus
com o seguinte 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
}
Amostra
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
SDK FireOS do AccessEnabler accessenabler-fireos-sdk
O novo sistema de relatório de erros é obrigatório porque o implementador deve estar em conformidade explícita com o protocolo definido pela interface IAccessEnablerDelegate
. Essa nova abordagem permite que os programadores recebam relatórios avançados de erros.
Implementação access-enab-fireos-sdk-
Um implementador precisa lidar com o novo método status
da interfaceIAccessEnablerDelegate
. A função status
receberá um único objeto AdvancedStatus
com o seguinte 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
}
Amostra
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Referência de códigos de erro avançada advanced-error-codes-reference
A tabela a seguir lista e descreve os códigos de erro expostos pela API de erro mais recente, juntamente com as ações sugeridas para corrigi-los:
Instrua/solicite que o usuário saia explicitamente de Configurações -> Provedor de TV no iOS/iPadOS.
Sair explicitamente em Configurações -> Provedor de TV no iOS/iPadOS
- Entre em contato com o Adobe para gerenciar a lista de permissões do domínio para a ID do Solicitante usada
- iOS: verifique se você está usando o certificado correto e se a assinatura foi criada corretamente
- Opcionalmente, informe ao usuário que ele precisa fazer logon novamente.
[https://]{SP_FQDN\}
no navegador e aceite manualmente os certificados SSL, por exemplo, https://api.auth.adobe.com ou https://api.auth-staging.adobe.com- Marcar os certificados de proxy como confiáveis
Execute ações para evitar fluxos de direitos, pois eles provavelmente falharão.
- O desenvolvedor tem uma falsificação inválida em vigor.
-O usuário tem problemas de rede e não pode acessar os domínios de Autenticação Adobe Pass.
-Os servidores de Autenticação Adobe Pass estão configurados incorretamente.
Observação: no Firefox, o CFG400 será exibido em vez do CFG404 (limitação do navegador)
-Verificar configurações de rede/DNS.
-Adobe de informação.
- Ignorar Autenticação Adobe Pass.
- Informar Adobe.
- Opcionalmente, apresentar uma lista de MVPDs comuns.
- Apresentar uma lista de MVPDs comuns.
- Ocultar a opção TempPass.
1. O navegador tem cookies (de terceiros) desabilitados (Não se aplica ao SDK JavaScript do AccessEnabler versão 4.x)
2. O navegador tem Impedir rastreamento entre sites habilitado (Safari 11+)
3. A sessão expirou
4. Programador chama APIs de autenticação em sucessão incorreta
OBSERVAÇÃO: este código de erro não está disponível para fluxos de autenticação de redirecionamento de página inteira.
2. Avisar usuário para desabilitar o rastreamento entre sites
3. Avisar usuário para autenticar novamente
4. Chamar APIs na ordem correta
2. Desabilitar rastreamento entre sites
3. Reautenticar
4. N/A
Observação: este é o "Erro de Autenticação Genérico" e o "Erro de Autenticação Interna" do sistema de erro original. Esse erro acabará sendo eliminado.
Observação: este é um erro irrecuperável. Informe ao usuário que o aplicativo não está disponível.
- JavaScript: verifique a instrução de software no aplicativo do site.
Abra um tíquete usando o Zendesk e informe ao usuário que o sistema está temporariamente indisponível
Observação: este é um erro irrecuperável. Informe ao usuário que o aplicativo não está disponível.
- JavaScript: verifique a instrução de software no aplicativo do site.
Abra um tíquete usando o Zendesk e informe ao usuário que o sistema está temporariamente indisponível
Observação: este é um erro irrecuperável. Informe ao usuário que o aplicativo não está disponível.
- Informar o usuário.
- A chave 'message' na mensagem de erro PODE conter uma mensagem mais detalhada fornecida pelo MVPD.
- Informar o usuário.
- Informe ao usuário que o MVPD enfrentou dificuldades e que ele deve tentar mais tarde.
Observação: este é o "Erro de Autenticação Genérico" e o "Erro de Autenticação Interno" herdados. Esse erro acabará sendo eliminado.
- Contate o suporte de Autenticação da Adobe Pass para localizar/configurar o número máximo de recursos permitidos.
A autenticação/autorização não persiste além da página atual. Cada carregamento de página resultará na autenticação do usuário. Os TTLs configurados não são aplicados em recarregamentos de página.
- Informar ao usuário como aumentar o espaço de armazenamento disponível.
- Alternativamente, faça logout para limpar o armazenamento.
- Faça logoff para limpar o armazenamento.
Relatório de Erros Original original-error-reporting
Esta seção descreve o sistema original de relatório de erros, juntamente com os códigos de erro originais. No sistema original de relatório de erros, o AccessEnabler transmite erros para essas duas funções de retorno de chamada: setAuthenticationStatus()
após uma chamada para checkAuthentication()
; tokenRequestFailed()
, após a falha de uma chamada para checkAuthorization()
ou getAuthorization()
.
O relatório de erros original e as APIs de status continuam a funcionar exatamente como antes. No entanto, avançar as APIs originais do relatório de erros não será atualizado. Todos os novos relatórios de erros e atualizações dos erros antigos serão refletidos SOMENTE no novo sistema de Relatório de Erros Avançado.
Para obter exemplos de uso do sistema original de relatório de erros, consulte as funções Referência da API JavaScript:setAuthenticationStatus() e tokenRequestFailed(), Referência da API iOS/tvOS: setAuthenticationStatus()e tokentRequestFailed(), Referência da API Android: setAuthenticationStatus() e 6}tokenRequestFailed().