嵌入式 QuickSight 仪表板,对另一个仪表板执行 URL 操作
Embedded QuickSight dashboard with URL Action to another dashboard
场景:
我在 Web 应用程序中嵌入了 QuickSight 仪表板,该仪表板显示正确。
此仪表板(仪表板 A)包含一个 URL 操作,该操作 link 发送到单独的仪表板(仪表板 B)。
我使用 Chrome 工具为仪表板 B 抓取嵌入 URL 并将其配置为分析中的 URL 操作:
https://eu-west-1.quicksight.aws.amazon.com/embed/yyyyyyyyyyyYYYYYYYYYYYyyyy/dashboards/xxxxxxx-xxxx-xxxx-xxxxxxxxxx
现在,当在嵌入式仪表板 A 上单击 URL 操作时,它会正确地 link 发送到仪表板 B。
但是,如果另一个用户访问同一个嵌入式仪表板 A 并单击 link,则会导致
We can't display this page (Not authorized).
第一个参数 yyyyyyyyyyyYYYYYYYYYYYyyyy
似乎是用户特定的,因此仪表板 B 的 URL 操作不能像这样硬编码。
在嵌入式 QuickSight 仪表板之间 linking 的正确方法是什么。 URL 行动是可行的方法,还是需要其他方法?
解决方案
URL 操作的“嵌入令牌”(yyyyyyyyyyyYYYYYYYYYYYyyyy
) 必须作为参数从客户端嵌入脚本传递。可以通过从仪表板 A.
解析会话 URL 来检索要传递的值
const embed = () => {
const options = {
url: props.sessionUrl,
...
parameters: {
embedToken: props.sessionUrl.split('/')[4]
},
...
};
QuickSightEmbedding.embedDashboard(options);
};
然后在 QuickSight 中,参数可用于为 URL 操作形成 URL,如下所示。 (确保在 Quicksight 分析中添加 embedToken
作为 string
作为参数)。
https://eu-west-1.quicksight.aws.amazon.com/embed/<<$embedToken>>/dashboards/xxxxxxx-xxxx-xxxx-xxxxxxxxxx
嵌入式仪表板 A 然后在任何用户查看时正确 link 到嵌入式仪表板 B。
一种替代方法是在您的 Web 应用程序中分别为仪表板 A 和 B 生成嵌入 URL,并将仪表板 B 的嵌入 URL 作为仪表板 A 的外部参数传递。既然您可以在动作中使用参数 URL,应该可以。
场景:
我在 Web 应用程序中嵌入了 QuickSight 仪表板,该仪表板显示正确。
此仪表板(仪表板 A)包含一个 URL 操作,该操作 link 发送到单独的仪表板(仪表板 B)。
我使用 Chrome 工具为仪表板 B 抓取嵌入 URL 并将其配置为分析中的 URL 操作:
https://eu-west-1.quicksight.aws.amazon.com/embed/yyyyyyyyyyyYYYYYYYYYYYyyyy/dashboards/xxxxxxx-xxxx-xxxx-xxxxxxxxxx
现在,当在嵌入式仪表板 A 上单击 URL 操作时,它会正确地 link 发送到仪表板 B。
但是,如果另一个用户访问同一个嵌入式仪表板 A 并单击 link,则会导致
We can't display this page (Not authorized).
第一个参数 yyyyyyyyyyyYYYYYYYYYYYyyyy
似乎是用户特定的,因此仪表板 B 的 URL 操作不能像这样硬编码。
在嵌入式 QuickSight 仪表板之间 linking 的正确方法是什么。 URL 行动是可行的方法,还是需要其他方法?
解决方案
URL 操作的“嵌入令牌”(yyyyyyyyyyyYYYYYYYYYYYyyyy
) 必须作为参数从客户端嵌入脚本传递。可以通过从仪表板 A.
const embed = () => {
const options = {
url: props.sessionUrl,
...
parameters: {
embedToken: props.sessionUrl.split('/')[4]
},
...
};
QuickSightEmbedding.embedDashboard(options);
};
然后在 QuickSight 中,参数可用于为 URL 操作形成 URL,如下所示。 (确保在 Quicksight 分析中添加 embedToken
作为 string
作为参数)。
https://eu-west-1.quicksight.aws.amazon.com/embed/<<$embedToken>>/dashboards/xxxxxxx-xxxx-xxxx-xxxxxxxxxx
嵌入式仪表板 A 然后在任何用户查看时正确 link 到嵌入式仪表板 B。
一种替代方法是在您的 Web 应用程序中分别为仪表板 A 和 B 生成嵌入 URL,并将仪表板 B 的嵌入 URL 作为仪表板 A 的外部参数传递。既然您可以在动作中使用参数 URL,应该可以。