Embed dashboard iframe in 'end message' - needs node.js / jsonwebtoken

More
2 months 2 weeks ago - 2 months 2 weeks ago #171761 by redbeard
redbeard created the topic: Embed dashboard iframe in 'end message' - needs node.js / jsonwebtoken
Hi,

I would like to display a chart being powered by my BI tool at the end of a survey on the 'end message'.


For this, my BI tool says I have two things to do:

1) Insert this code snippet in your server code to generate the signed embedding URL - I have a choice of languages I can use:
Javascript:
// you will need to install via 'npm install jsonwebtoken' or in your package.json
 
var jwt = require("jsonwebtoken");
 
var METABASE_SITE_URL = "<URL>";
var METABASE_SECRET_KEY = "<secret key>";
 
var payload = {
  resource: { dashboard: 6 },
  params: {
    "category": "<survey ID>"
  }
};
var token = jwt.sign(payload, METABASE_SECRET_KEY);
 
var iframeUrl = METABASE_SITE_URL + "/embed/dashboard/" + token + "#bordered=true&titled=true";

It is worth noting that: I am on a shared hosting account with SiteGround (node.js is not allowed to run) - if I need node.js I can probably install LimeSurvey on a dedicated account.

Python
# You'll need to install PyJWT via pip 'pip install PyJWT' or your project packages file
 
import jwt
 
METABASE_SITE_URL = "<URL>"
METABASE_SECRET_KEY = "<Secret key>"
 
payload = {
  "resource": {"dashboard": 6},
  "params": {
    "category": "<survey id>"
  }
}
token = jwt.encode(payload, METABASE_SECRET_KEY, algorithm="HS256")
 
iframeUrl = METABASE_SITE_URL + "/embed/dashboard/" + token.decode("utf8") + "#bordered=true&titled=true"

2) Then insert this code snippet in your HTML template or single page app.
iframe(
src=iframeUrl
frameborder="0"
width="800"
height="600"
allowtransparency
)


I have tried uploading the code from 1 as a javascript file in a theme I extended (see capture.png, attached)



And the end message looks like:
<iframe allowtransparency="" frameborder="0" height="600" src="iframeUrl" width="800"></iframe>

Attached in capture2.png is the error message when I run the survey and reach the 'end page'
Attachments:
Last Edit: 2 months 2 weeks ago by redbeard. Reason: Add screenshot of error message + detail

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!