エラーレポート error-reporting
概要 overview
Adobe Pass認証のエラーレポートは、現在、次の 2 つの方法で実装されています。
-
高度なエラーレポート 実装者は、 AccessEnabler JavaScript SDK または、「 」という名前の Interface メソッドを実装します。
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)
エラーハンドラーのコールバック関数は、次の構造を持つ 1 つのオブジェクト(マップ)を受け取ります。
{
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
- errors ハンドラ関数の名前を指定する文字列。
両方のバインドパラメータは、次のセットの文字のみを使用する必要があります。 [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
- 'のみerrorEvent
'の値を指定すると、AccessEnabler JavaScript SDK が高度なエラーレポートコールバックをトリガーします。
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
新しいエラー報告システムは必須なので、実装者は新しい Objective 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
. The 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
. The 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 Provider から明示的にサインアウトするようにユーザーに指示/プロンプトを表示します。
iOS/iPadOS の設定/TV Provider から明示的にログアウトする
— 使用する要求者 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. ブラウザーに(サードパーティの)cookie が無効になっている(AccessEnabler JavaScript SDK バージョン 4.x には適用されない)
2. ブラウザーでクロスサイトトラッキングを防ぐ機能が有効になっている(Safari 11 以降)
3. セッションが期限切れです
4. プログラマーが誤った連続で認証 API を呼び出す
注意:このエラーコードは、フルページのリダイレクト認証フローでは使用できません。
2. クロスサイトトラッキングを無効にするようユーザーに促す
3. ユーザーに再認証を求める
4. 正しい順序で API を呼び出す
2. クロスサイトトラッキングの無効化
3. 再認証
4. 該当なし
注意:これは、元のエラーシステムの「汎用認証エラー」と「内部認証エラー」です。 このエラーは最終的に廃止されます。
注意:これは回復不能なエラーです。 アプリケーションが使用できないことをユーザーに通知します。
- JavaScript: Web サイトアプリケーションで software 文を確認します。
Zendesk を使用してチケットを開き、システムが一時的に利用できないことをユーザーに知らせます。
注意:これは回復不能なエラーです。 アプリケーションが使用できないことをユーザーに通知します。
- JavaScript: Web サイトアプリケーションで software 文を確認します。
Zendesk を使用してチケットを開き、システムが一時的に利用できないことをユーザーに知らせます。
注意:これは回復不能なエラーです。 アプリケーションが使用できないことをユーザーに通知します。
— ユーザーに通知します。
— エラーメッセージ MAY 内の'message'キーには、MVPD が提供するより詳細なメッセージが含まれています。
— ユーザーに通知します。
- MVPD が困難を経験し、後でやり直す必要があることをユーザーに通知します。
注意:これは、従来の「汎用認証エラー」と「内部認証エラー」です。 このエラーは最終的に廃止されます。
- Adobe Pass認証サポートに連絡して、許可されるリソースの最大数を調べたり、設定したりします。
認証/認証は、現在のページの後は保持されません。 各ページが読み込まれるたびに、ユーザーは認証を必要とします。 設定された TTL は、ページのリロード時には適用されません。
— 使用可能なストレージ容量を増やす方法をユーザーに通知します。
— または、ストレージを消去するためにログアウトします。
— ストレージをクリアするにはログアウトします。
元のエラーレポート original-error-reporting
この項では、元のエラー・レポート・システムと元のエラー・コードについて説明します。 元のエラー・レポート・システムでは、AccessEnabler は次の 2 つのコールバック関数にエラーを渡します。 setAuthenticationStatus()
~に電話した後で checkAuthentication()
; tokenRequestFailed()
(への呼び出しが失敗した後) checkAuthorization()
または getAuthorization()
.
元のエラーレポートとステータス API は、引き続き以前と同じように機能します。 ただし、今後、元のエラーレポート API は更新されません。 古いエラーに関する新しいエラーのレポートと更新は、新しいエラーにのみ反映されます 高度なエラー報告システム.
元のエラー報告システムの使用例については、 JavaScript API リファレンス:setAuthenticationStatus() および tokenRequestFailed() 関数 iOS/tvOS API リファレンス: setAuthenticationStatus()および tokentRequestFailed(), Android API リファレンス: setAuthenticationStatus() および tokenRequestFailed().