エラーレポート error-reporting
概要 overview
Adobe Pass認証のエラーレポートは、現在、次の 2 つの方法で実装されています。
-
高度なエラーレポート 実装者は、高度なエラーレポートを受け取るために、AccessEnabler JavaScript SDK の場合はエラーコールバックを登録し、AccessEnabler iOS/tvOS SDK および AccessEnabler Android SDK の場合は「
status
」という名前のインターフェイスメソッドを実装します。 エラーは、「情報」、「警告」、「エラー タイプに分類されます。 このレポートシステムは 非同期 なので、複数のエラーがトリガーされる順序は保証されません。 高度なエラーレポートシステムについて詳しくは、「 高度なエラーレポート」の節を参照してください。 -
元のエラーレポート - 特定のリクエストが失敗した場合に、エラーメッセージが特定のコールバック関数に渡される静的なレポートシステム。 エラーは、汎用、認証、承認の各タイプにグループ化されます。 元のシステムで報告されたエラーのリストについては、 元のエラーレポートの節を参照してください。
高度なエラーレポート 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
- AccessEnabler JavaScript SDK で高度なエラーレポート コールバックがトリガーされるのは、「errorEvent
」値のみです。
handlerName
- エラーハンドラー関数の名前を指定する文字列。
両方のバインド・パラメータで使用できるのは、次のセットの文字のみです。[0-9a-zA-Z][-._a-zA-Z0-9]
。つまり、パラメータは数字または文字で始まる必要があり、その後で使用できるのは、ハイフン、ピリオド、アンダースコアおよび英数字のみです。 また、パラメーターは 1024 文字を超えることはできません。
例 バインディングエラーハンドラー:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
技術的な制限により、クローズまたは匿名関数をバインドすることはできません。 2 番目のパラメーターには、メソッドの名前を指定する必要があります。
2. バインド解除 unbind
.unbind(eventType:String, handlerName:String=null):void
以前にアタッチされたイベント ハンドラを削除します。
eventType
- AccessEnabler JavaScript SDK で高度なエラーレポート コールバックがトリガーされるのは、'errorEvent
'値のみです。
handlerName
- エラーハンドラー関数の名前を指定する文字列。が null の場合は、指定された eventType
に添付されているすべてのハンドラーが欠落している場合は、削除されます。
両方のバインド・パラメータで使用できるのは、次のセットの文字のみです。[0-9a-zA-Z][-._a-zA-Z0-9]
。つまり、パラメータは数字または文字で始まる必要があり、その後で使用できるのは、ハイフン、ピリオド、アンダースコアおよび英数字のみです。 また、パラメーターは 1024 文字を超えることはできません。
例 単一のエラーハンドラーを削除する場合:
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
status 関数は、次の構造を持つ単一のオブジェクト(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
実装者は、インターフェイス IAccessEnablerDelegate
から新しい status
メソッドを処理する必要があります。 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 で公開されたエラーコードと、それらを修正するために実行する必要がある推奨アクションを示します。
[ 設定 ] > [TV プロバイダー ] から明示的にサインアウトするように指示またはプロンプトを表示します。
iOS/iPadOS で、「設定」から明示的にサインアウトする – /「TV プロバイダー」
- Adobeに問い合わせて、
で使用するリクエスター ID のドメインホワイトリストを管理してください
- iOS:正しい証明書を使用していること、および署名が正しく作成されていることを確認します
- (オプション)再度ログインする必要があることをユーザーに通知します。
[https://]{SP_FQDN\}
を読み込み、SSL 証明書を手動で受け入れます(例:https://api.auth.adobe.com または https://api.auth-staging.adobe.com- プロキシ証明書を信頼済みとしてマークする
使用権限フローは失敗する可能性が高いので、これを防ぐためのアクションを実行します。
– 開発者に無効なスプーフィングが設定されています。
- ユーザーのネットワークに問題があり、Adobe Pass Authentication ドメインに到達できない。
-Adobe Pass認証サーバーの設定が正しくありません。
注意: Firefox では、CFG404 (ブラウザー制限)ではなく CFG400 が表示されます
- ネットワーク / DNS 設定を確認します。
-Adobeに通知。
- Adobe Pass認証をバイパスします。
-Adobeに通知します。
– 通常の MVPD のリストをオプションで表示します。
– 通常の MVPD のリストを表示します。
- 「TempPass」オプションを非表示にします。
1. ブラウザーで(サードパーティ)の Cookie が無効になっている(AccessEnabler JavaScript SDK Version 4.x は適用不可)
2. ブラウザーで「クロスサイトトラッキングを防ぐ」が有効になっている(Safari 11 以降)
3. セッションの有効期限が切れました
4. プログラマーが認証 API を誤った連続で呼び出す
注意:このエラーコードは、フルページリダイレクト認証フローでは使用できません。
2. クロスサイトトラッキング
ールを無効にするようユーザーに促す
3.
の再認証をユーザーに促す
4. API を正しい順序で呼び出す
2. クロスサイトトラッキング
ールを無効にする
3.
の再認証
4. 該当なし
メモ:これは、元のエラーシステムの「汎用認証エラー」と「内部認証エラー」です。 このエラーは最終的には廃止されます。
メモ:これは回復不可能なエラーです。 アプリケーションが使用不可であることをユーザーに通知します。
- JavaScript:Web サイトアプリケーションのソフトウェアのステートメントを確認します。
Zendesk を使用してチケットを開き、システムが一時的に使用できなくなったことをユーザーに通知します
メモ:これは回復不可能なエラーです。 アプリケーションが使用不可であることをユーザーに通知します。
- JavaScript:Web サイトアプリケーションのソフトウェアのステートメントを確認します。
Zendesk を使用してチケットを開き、システムが一時的に使用できなくなったことをユーザーに通知します
メモ:これは回復不可能なエラーです。 アプリケーションが使用不可であることをユーザーに通知します。
- ユーザーに通知します。
- エラーメッセージの'message' キーには、MVPD によって提供されるより詳細なメッセージが含まれる場合があります。
- ユーザーに通知します。
- MVPD が困難を経験したことをユーザーに通知し、後で試してください。
メモ:これは従来の「汎用認証エラー」および「内部認証エラー」です。 このエラーは最終的には廃止されます。
– 許可されている最大リソース数を見つけて設定するには、Adobe Pass認証サポートにお問い合わせください。
認証/承認
、現在のページ以降は保持されません。 ページが読み込まれるたびに、ユーザーの認証が必要になります。 設定済みの TTL は、ページの再読み込み時には適用されません。
– 使用可能なストレージスペースを増やす方法をユーザーに通知します。
:または、ストレージをクリアするためにログアウトします。
- ストレージをクリアするためにログアウトします。
元のエラーレポート original-error-reporting
この節では、元のエラーコードと共に、元のエラーレポートシステムについて説明します。 元のエラー・レポート・システムでは、AccessEnabler は、checkAuthentication()
の呼び出し後に setAuthenticationStatus()
、checkAuthorization()
または getAuthorization()
の呼び出し失敗後に tokenRequestFailed()
という 2 つのコールバック関数にエラーを渡します。
元のエラーレポートおよびステータス API は、引き続き以前とまったく同じように機能します。 ただし、今後、元のエラーレポート API は更新されません。 新しいエラー報告および古いエラーに関する更新は、新しい 高度なエラー報告システムにのみ反映されます。
元のエラーレポートシステムの使用例については、JavaScript API リファレンス:setAuthenticationStatus ()および tokenRequestFailed ()関数、iOS/tvOS API リファレンス:setAuthenticationStatus ()および tokentRequestFailed ()、Android API リファレンス:setAuthenticationStatus ()および tokenRequestFailed ()を参照してください。