오류 보고 error-reporting
개요 overview
Adobe Pass 인증의 오류 보고는 현재 두 가지 방법으로 구현됩니다.
-
고급 오류 보고 구현자는 의 경우 오류 콜백을 등록합니다. AccessEnabler JavaScript SDK 또는 라는 인터페이스 메서드를 구현합니다.
status
의 경우 " AccessEnabler iOS/tvOS SDK 및 AccessEnabler Android SDK고급 오류 보고를 받습니다. 오류는 다음과 같이 분류됩니다. 정보, 경고, 및 오류 유형. 이 보고 시스템은 비동기, 해당 여러 오류가 트리거되는 순서는 보장되지 않습니다. 고급 오류 보고 시스템에 대한 자세한 내용은 고급 오류 보고 섹션. -
원래 오류 보고 - 특정 요청이 실패할 때 특정 콜백 함수에 오류 메시지가 전달되는 정적 보고 시스템입니다. 오류는 일반, 인증 및 권한 부여 유형으로 그룹화됩니다. 원래 시스템에서 보고된 오류 목록은 원래 오류 보고 섹션.
고급 오류 보고 advanced-error-reporting
AccessEnabler JavaScript SDK accessenabler-javascript-sdk
새 오류 보고 시스템은 선택 사항으로 남아 있으므로 구현자는 오류 처리기 콜백을 명시적으로 등록하여 고급 오류 보고서를 수신할 수 있습니다. 이 시스템에는 여러 오류 콜백을 동적으로 등록 및 등록 취소할 수 있는 기능이 포함되어 있습니다. 또한 AccessEnabler JavaScript SDK가 로드되면 다른 초기화를 수행하지 않고도 새 오류 콜백을 등록할 수 있습니다(호출 전) setRequestor()
)를 입력하여 초기화 및 구성 오류에 대한 고급 보고서를 받을 수 있습니다.
구현 access-enab-js-imp
yourErrorHandler(errorData:Object)
오류 처리기 콜백 함수는 다음 구조의 단일 개체(맵)를 수신합니다.
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. 바인딩 bind
.bind(eventType:String, handlerName:String):void
이벤트에 대한 핸들러를 연결합니다.
eventType
- "만errorEvent
"값을 지정하면 AccessEnabler JavaScript SDK에서 고급 오류 보고서 콜백을 트리거합니다.
handlerName
- 오류 처리기 함수의 이름을 지정하는 문자열.
두 바인드 매개 변수는 모두 다음 집합의 문자만 사용해야 합니다. [0-9a-zA-Z][-._a-zA-Z0-9]
즉, 매개 변수는 숫자나 문자로 시작해야 하며 하이픈, 마침표, 밑줄 및 영숫자만 포함할 수 있습니다. 또한 매개 변수는 1,024자를 초과할 수 없습니다.
예 바인딩 오류 처리기의 경우:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
기술적 한계로 인해 닫힘이나 익명 함수를 바인딩할 수 없습니다. 두 번째 매개 변수에서 메서드의 이름을 지정해야 합니다.
2. 바인딩 해제 unbind
.unbind(eventType:String, handlerName:String=null):void
이전에 첨부된 이벤트 처리기를 제거합니다.
eventType
- 'errorEvent
' 값을 지정하면 AccessEnabler JavaScript SDK에서 고급 오류 보고서 콜백을 트리거합니다.
handlerName
- 이 null이거나 지정된 의 연결된 모든 처리기가 누락된 경우 오류 처리기 함수의 이름을 지정하는 문자열 eventType
제거됩니다.
두 바인드 매개 변수는 모두 다음 집합의 문자만 사용해야 합니다. [0-9a-zA-Z][-._a-zA-Z0-9]
즉, 매개 변수는 숫자나 문자로 시작해야 하며 하이픈, 마침표, 밑줄 및 영숫자만 포함할 수 있습니다. 또한 매개 변수는 1,024자를 초과할 수 없습니다.
예 단일 오류 핸들러를 제거하는 경우:
accessEnabler.unbind('errorEvent', 'errorLogger');
예 모든 오류 처리기 제거:
accessEnabler.unbind('errorEvent');
AccessEnabler iOS/tvOS SDK accessenabler-ios-tvos-sdk
새 오류 보고 시스템은 필수 항목이므로 구현자는 새 목표 C "EntitlementStatus" 프로토콜을 명시적으로 준수해야 합니다. 이 새로운 접근 방식을 통해 프로그래머는 고급 오류 보고를 받을 수 있습니다.
구현 accessenab-ios-tvossdk-imp
구현자는 다음을 준수해야 합니다 EntitlementStatus 프로토콜:
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
사용자 상태 함수는 단일 개체를 수신합니다( NSDictionary
)를 사용할 수 있습니다.
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. 선언
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. 구현
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
AccessEnabler Android SDK accessenabler-android-sdk
구현자가 을 명시적으로 준수해야 하므로 새 오류 보고 시스템은 필수입니다. IAccessEnablerDelegate
인터페이스 정의 프로토콜입니다. 이 새로운 접근 방식을 통해 프로그래머는 고급 오류 보고를 받을 수 있습니다.
구현 access-enablr-androidsdk-imp
구현자가 새 를 처리해야 합니다. status
인터페이스의 메서드IAccessEnablerDelegate
. 다음 status
함수가 단일 AdvancedStatus
다음 모델이 있는 개체:
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
}
샘플
@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
구현자가 을 명시적으로 준수해야 하므로 새 오류 보고 시스템은 필수입니다. IAccessEnablerDelegate
인터페이스 정의 프로토콜입니다. 이 새로운 접근 방식을 통해 프로그래머는 고급 오류 보고를 받을 수 있습니다.
구현 access-enab-fireos-sdk-
구현자가 새 를 처리해야 합니다. status
인터페이스의 메서드IAccessEnablerDelegate
. 다음 status
함수가 단일 AdvancedStatus
다음 모델이 있는 개체:
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
}
샘플
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
고급 오류 코드 참조 advanced-error-codes-reference
다음 표에는 최신 오류 API에 의해 노출된 오류 코드와 이를 수정하기 위해 취해야 할 제안 작업이 나열되고 설명되어 있습니다.
iOS/iPadOS의 설정 -> TV 공급자에서 명시적으로 로그아웃하도록 사용자에게 지시하거나 확인합니다.
iOS/iPadOS의 설정 -> TV 공급자에서 명시적으로 로그아웃
- 사용된 요청자 ID에 대한 도메인 허용 목록을 관리하려면 Adobe에게 문의하십시오.
- iOS: 올바른 인증서를 사용하고 있으며 서명이 제대로 생성되었는지 확인합니다.
- 원할 경우 다시 로그인해야 함을 사용자에게 알립니다.
[https://]{SP_FQDN\}
예를 들어 브라우저에서 SSL 인증서를 수동으로 승인합니다. https://api.auth.adobe.com 또는 https://api.auth-staging.adobe.com- 프록시 인증서를 신뢰할 수 있는 것으로 표시
권리 유형 흐름이 실패할 수 있으므로 이를 방지하기 위해 조치를 취하십시오.
- 개발자에게 잘못된 스푸핑이 있습니다.
-사용자에게 네트워킹 문제가 있어 Adobe Pass 인증 도메인에 연결할 수 없습니다.
-Adobe Pass 인증 서버가 잘못 구성되었습니다.
참고: Firefox에서는 CFG404 대신 CFG400이 표시됩니다(브라우저 제한 사항)
-네트워크/DNS 설정을 확인합니다.
- Adobe에 알립니다.
- Adobe Pass 인증을 무시합니다.
- Adobe에게 알립니다.
- 선택적으로 일반 MVPD 목록을 표시합니다.
- 일반 MVPD 목록을 표시합니다.
- TempPass 옵션을 숨깁니다.
1. 브라우저에 (타사) 쿠키가 비활성화되었습니다. (AccessEnabler JavaScript SDK 버전 4.x에는 적용되지 않음)
2. 브라우저에 사이트 간 추적 방지 가 활성화되어 있습니다(Safari 11+).
3. 세션이 만료되었습니다.
4. 프로그래머가 잘못된 연속 인증 API를 호출합니다.
참고: 이 오류 코드는 전체 페이지 리디렉션 인증 흐름에 사용할 수 없습니다.
2. 사이트 간 추적을 비활성화하도록 사용자에게 홍보
3. 사용자에게 다시 인증하라는 메시지 표시
4. 올바른 순서로 API 호출
2. 사이트 간 추적 비활성화
3. 재인증
4. 해당 사항 없음
참고: 원래 오류 시스템의 "일반 인증 오류" 및 "내부 인증 오류"입니다. 이 오류는 결국 단계적으로 제거됩니다.
참고: 이 오류는 복구할 수 없습니다. 응용 프로그램을 사용할 수 없음을 사용자에게 알립니다.
- JavaScript: 웹 사이트 애플리케이션에서 소프트웨어 구문을 확인합니다.
Zendesk를 사용하여 티켓을 열고 시스템을 일시적으로 사용할 수 없음을 사용자에게 알립니다.
참고: 이 오류는 복구할 수 없습니다. 응용 프로그램을 사용할 수 없음을 사용자에게 알립니다.
- JavaScript: 웹 사이트 애플리케이션에서 소프트웨어 구문을 확인합니다.
Zendesk를 사용하여 티켓을 열고 시스템을 일시적으로 사용할 수 없음을 사용자에게 알립니다.
참고: 이 오류는 복구할 수 없습니다. 응용 프로그램을 사용할 수 없음을 사용자에게 알립니다.
- 사용자에게 알립니다.
- 오류 메시지의 'message' 키에는 MVPD에서 제공하는 보다 자세한 메시지가 포함될 수 있습니다.
- 사용자에게 알립니다.
- MVPD에 문제가 발생하여 나중에 다시 시도해야 함을 사용자에게 알립니다.
참고: 이는 레거시 "일반 인증 오류" 및 "내부 인증 오류"입니다. 이 오류는 결국 단계적으로 제거됩니다.
- Adobe Pass 인증 지원 센터에 문의하여 허용된 최대 리소스 수를 찾거나 설정합니다.
인증/권한 부여가 현재 페이지 이상으로 지속되지 않습니다. 페이지를 로드할 때마다 사용자를 인증해야 합니다. 구성된 TTL은 페이지 다시 로드 시 적용되지 않습니다.
- 사용 가능한 저장 공간을 늘리는 방법을 사용자에게 알립니다.
- 또는 스토리지를 지우려면 로그아웃합니다.
- 스토리지를 지우려면 로그아웃합니다.
원래 오류 보고 original-error-reporting
이 섹션에서는 원래 오류 코드와 함께 원래 오류 보고 시스템에 대해 설명합니다. 원래 오류 보고 시스템에서는 AccessEnabler가 다음 두 콜백 함수에 오류를 전달합니다. setAuthenticationStatus()
에 대한 호출 후 checkAuthentication()
; tokenRequestFailed()
, 호출 실패 후 checkAuthorization()
또는 getAuthorization()
.
원래 오류 보고 및 상태 API는 이전과 동일하게 계속 작동합니다. 그러나 앞으로는 원래 오류 보고 API가 업데이트되지 않습니다. 이전 오류에 대한 모든 새 오류 보고 및 업데이트가 새 오류에만 반영됩니다. 고급 오류 보고 시스템.
원래 오류 보고 시스템을 사용하는 예는 JavaScript API 참조:setAuthenticationStatus() 및 tokenRequestFailed() 함수, iOS/tvOS API 참조: setAuthenticationStatus()및 tokentRequestFailed(), Android API 참조: setAuthenticationStatus() 및 tokenRequestFailed().