0

自社サイトにダッシュボードを埋め込もうとしています。.NET Core 2.1 と AWSSDK 3.3.1.12 を使用しています。API Gateway を使用して AWS Lambda でサイトを実行しています。

この 2 つのガイドに従って、アクセス許可を設定し、エンドポイントを設定して、ダッシュボードの埋め込み URL を取得しました。

埋め込みダッシュボードの URL を取得できました

var getDashboardUrl = await client.GetDashboardEmbedUrlAsync(new GetDashboardEmbedUrlRequest
                {
                    AwsAccountId = awsAccountId,
                    IdentityType = EmbeddingIdentityType.QUICKSIGHT,
                    DashboardId = testDashboardId,
                    SessionLifetimeInMinutes = 100,
                    ResetDisabled = true,
                    UndoRedoDisabled = false,
                    Namespace = "default",
                    UserArn = $"arn:aws:quicksight:us-east-1:{awsAccountId}:user/default/{email}",
                    StatePersistenceEnabled = true
                });

Quicksight JavaScript SDK を使用してダッシュボードを埋め込みましたが、エラーが発生しました。ダッシュボードを読み込んでいることを示していますが、読み込まれると「このページを表示できません (承認されていません)」というメッセージが表示されます

サイトで表示されるエラー メッセージ

function embedDashboard(embedUrl) {
    let containerDiv = document.getElementById("embeddingContainer");
    let options = {
        // replace this dummy url with the one generated via embedding API
        url: embedUrl,
        container: containerDiv,
        scrolling: "no",
        height: "700px",
        width: "1000px",
        footerPaddingEnabled: true
    };
    dashboard = QuickSightEmbedding.embedDashboard(options);
}

さらに情報が必要な場合はお知らせください

4

1 に答える 1

0

URL が何らかの方法でエンコードされているかどうかを確認します。一般的な問題は、URL 文字列を埋め込みスクリプトに渡すときにアンパサンド (&) 文字がエスケープされることです。

...&identityprovider=quicksight&isauthcode=true

として渡すことができます

...&identityprovider=quicksight&isauthcode=true

これにより、埋め込みが失敗します。

于 2021-08-26T15:13:52.420 に答える