<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS in Techspert Talks</title>
    <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754947#M133</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/17411"&gt;@Carl_Hunter&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't say too much about the roadmap, as plans could change.&lt;/P&gt;&lt;P&gt;In the current situation, each user needs to be authenticated, and as we do not have any core-based license or capacity analyzer license for Qlik Sense SaaS yet, you will need to purchase an analyzer license for each person viewing the site.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Damien&lt;/P&gt;</description>
    <pubDate>Thu, 22 Oct 2020 12:52:45 GMT</pubDate>
    <dc:creator>Damien_V</dc:creator>
    <dc:date>2020-10-22T12:52:45Z</dc:date>
    <item>
      <title>STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1753109#M129</link>
      <description>&lt;P&gt;This session covers:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;What APIs can do for you &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Using API keys&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;Integrating objects in apps &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;What to do when things go wrong&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;SPAN&gt;&lt;div class="video-embed-center video-embed"&gt;&lt;iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FwDHT0oZj4x0%3Ffeature%3Doembed&amp;amp;display_name=YouTube&amp;amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DwDHT0oZj4x0&amp;amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FwDHT0oZj4x0%2Fhqdefault.jpg&amp;amp;type=text%2Fhtml&amp;amp;schema=youtube" width="600" height="337" scrolling="no" title="STT - Leveraging APIs on Qlik Sense Enterprise SaaS" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Chapters:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=0s" target="_blank"&gt;00:00&lt;/A&gt;&lt;SPAN&gt; - Intro &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=42s" target="_blank"&gt;00:42&lt;/A&gt;&lt;SPAN&gt; - Why use APIs&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=105s" target="_blank"&gt;01:45&lt;/A&gt;&lt;SPAN&gt; - Demo Creating an App with APIs&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=312s" target="_blank"&gt;05:12&lt;/A&gt;&lt;SPAN&gt; - What APIs to use&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=386s" target="_blank"&gt;06:26&lt;/A&gt;&lt;SPAN&gt; - Where to find more about APIs&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=457s" target="_blank"&gt;07:37&lt;/A&gt;&lt;SPAN&gt; - Authenication and Initial Setup&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=614s" target="_blank"&gt;10:14&lt;/A&gt;&lt;SPAN&gt; - How to Embed a chart in an iFrame&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=823s" target="_blank"&gt;13:43&lt;/A&gt;&lt;SPAN&gt; - Using Authentication Keys&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=1065s" target="_blank"&gt;17:45&lt;/A&gt;&lt;SPAN&gt; - Troubleshooting Authentication Keys&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=1098s" target="_blank"&gt;18:18&lt;/A&gt;&lt;SPAN&gt; - Embedding in a SaaS Mashup with APIs&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=1265s" target="_blank"&gt;21:05&lt;/A&gt;&lt;SPAN&gt; - Troubleshooting Embedding in a Mashup&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=1508s" target="_blank"&gt;25:08&lt;/A&gt;&lt;SPAN&gt; - Using Fiddler&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=1580s" target="_blank"&gt;26:20&lt;/A&gt;&lt;SPAN&gt; - Additional Resources&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://www.youtube.com/watch?v=wDHT0oZj4x0&amp;amp;t=1612s" target="_blank"&gt;26:52&lt;/A&gt;&lt;SPAN&gt; - Q &amp;amp; A&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;&lt;STRONG&gt;Resources:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://qlik.dev/" target="_self"&gt;Qlik Dev&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://support.qlik.com/articles/000108891" target="_self"&gt;How to Create a Mashup&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://community.qlik.com/t5/Support-Knowledge-Base/Qlik-Cloud-Services-How-to-embed-a-chart-in-an-iFrame/ta-p/1711503" target="_self"&gt;How to Embed a chart in an iFrame&lt;/A&gt;&lt;BR /&gt;&lt;A href="https://developer.qlik.com/" target="_self"&gt;Qlik Branch&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;For more information:&lt;/P&gt;&lt;P&gt;&lt;A href="https://support.qlik.com/articles/000114199" target="_self"&gt;Leveraging APIs on Qlik Sense Enterprise SaaS - Article&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Video transcript:&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;Hi everyone. My name is Damien. I'm&lt;/P&gt;&lt;P&gt;working as a senior technical support&lt;/P&gt;&lt;P&gt;engineer.&lt;/P&gt;&lt;P&gt;I've been working at Qlik since 2013 and&lt;/P&gt;&lt;P&gt;my main focus&lt;/P&gt;&lt;P&gt;is Qlik Sense APIs and authentication.&lt;/P&gt;&lt;P&gt;So, today's agenda is Leveraging APIs&lt;/P&gt;&lt;P&gt;in Qlik Sense SaaS. So, we are gonna first&lt;/P&gt;&lt;P&gt;talk&lt;/P&gt;&lt;P&gt;about why use API; then&lt;/P&gt;&lt;P&gt;what API you can use; how to use them&lt;/P&gt;&lt;P&gt;and what to do when things go wrong.&lt;/P&gt;&lt;P&gt;Okay Damien, I've heard a lot about APIs&lt;/P&gt;&lt;P&gt;but what exactly can APIs do for you? Why&lt;/P&gt;&lt;P&gt;would you use them?&lt;/P&gt;&lt;P&gt;So, you would use API to automate some&lt;/P&gt;&lt;P&gt;different tasks&lt;/P&gt;&lt;P&gt;or call them from an external program. So&lt;/P&gt;&lt;P&gt;you can&lt;/P&gt;&lt;P&gt;perform some administrative tasks so&lt;/P&gt;&lt;P&gt;basically, everything that you can do&lt;/P&gt;&lt;P&gt;in the console in Qlik Sense Cloud. You&lt;/P&gt;&lt;P&gt;can do some front-end&lt;/P&gt;&lt;P&gt;action such as: applying a selection,&lt;/P&gt;&lt;P&gt;applying a bookmark.&lt;/P&gt;&lt;P&gt;Is it free to use APIs or is there&lt;/P&gt;&lt;P&gt;some sort of special licensing that's&lt;/P&gt;&lt;P&gt;required?&lt;/P&gt;&lt;P&gt;So, you don't need a special license to&lt;/P&gt;&lt;P&gt;use APIs.&lt;/P&gt;&lt;P&gt;But based on the action that you are&lt;/P&gt;&lt;P&gt;gonna do; for example, if you want to do&lt;/P&gt;&lt;P&gt;an action inside an app, modifying an&lt;/P&gt;&lt;P&gt;app then you would need to have a&lt;/P&gt;&lt;P&gt;professional&lt;/P&gt;&lt;P&gt;license assigned to the user because&lt;/P&gt;&lt;P&gt;only professional&lt;/P&gt;&lt;P&gt;users are allowed to modify an app. You&lt;/P&gt;&lt;P&gt;can call directly the Qlik&lt;/P&gt;&lt;P&gt;Associative Engine with your own data&lt;/P&gt;&lt;P&gt;and you can embed&lt;/P&gt;&lt;P&gt;Qlik Sense objects on your own website.&lt;/P&gt;&lt;P&gt;So, it's kind of just a different&lt;/P&gt;&lt;P&gt;interface with the program.&lt;/P&gt;&lt;P&gt;Can we see some of these APIs in action?&lt;/P&gt;&lt;P&gt;Of course.&lt;/P&gt;&lt;P&gt;So, we are first going to Qlik Dev&lt;/P&gt;&lt;P&gt;and use one of the examples that is&lt;/P&gt;&lt;P&gt;available.&lt;/P&gt;&lt;P&gt;I guess Qlik Dev would be where someone&lt;/P&gt;&lt;P&gt;would go to get started using APIs?&lt;/P&gt;&lt;P&gt;That's right. For Qlik Sense SaaS, that's&lt;/P&gt;&lt;P&gt;the best place to get started with APIs.&lt;/P&gt;&lt;P&gt;We're gonna first look into Qlik CLI.&lt;/P&gt;&lt;P&gt;What we're gonna show now is how to&lt;/P&gt;&lt;P&gt;create an&lt;/P&gt;&lt;P&gt;app, add the load script, and then&lt;/P&gt;&lt;P&gt;reload the app&lt;/P&gt;&lt;P&gt;so just a few commands will create an&lt;/P&gt;&lt;P&gt;app add the load script and reload it on&lt;/P&gt;&lt;P&gt;your Qlik Sense SaaS tenant&lt;/P&gt;&lt;P&gt;that's correct. So first of all,&lt;/P&gt;&lt;P&gt;we're going to run this command. I'm&lt;/P&gt;&lt;P&gt;gonna show&lt;/P&gt;&lt;P&gt;my Qlik Sense hub and verify that I&lt;/P&gt;&lt;P&gt;only have&lt;/P&gt;&lt;P&gt;one app “Consumer Sales” in my tenant.&lt;/P&gt;&lt;P&gt;Okay and now I'm gonna run the command&lt;/P&gt;&lt;P&gt;to create&lt;/P&gt;&lt;P&gt;the app. So this is just a regular&lt;/P&gt;&lt;P&gt;Windows command prompt?&lt;/P&gt;&lt;P&gt;Yes, that's just a regular Windows&lt;/P&gt;&lt;P&gt;command prompt,&lt;/P&gt;&lt;P&gt;and Qlik CLI has been installed prior&lt;/P&gt;&lt;P&gt;to this.&lt;/P&gt;&lt;P&gt;We are now getting the app id of the app&lt;/P&gt;&lt;P&gt;That just got created.&lt;/P&gt;&lt;P&gt;We can go back to the&lt;/P&gt;&lt;P&gt;hub&lt;/P&gt;&lt;P&gt;and check the app.&lt;/P&gt;&lt;P&gt;That was quick.&lt;/P&gt;&lt;P&gt;So we can open&lt;/P&gt;&lt;P&gt;the app and check its contents.&lt;/P&gt;&lt;P&gt;Go to the script editor. We can see that&lt;/P&gt;&lt;P&gt;for now, we only have the default line in&lt;/P&gt;&lt;P&gt;the script editor.&lt;/P&gt;&lt;P&gt;Okay, we're now gonna run the command to&lt;/P&gt;&lt;P&gt;add the script to the app that you can&lt;/P&gt;&lt;P&gt;also find on this&lt;/P&gt;&lt;P&gt;same page. We need to put the app&lt;/P&gt;&lt;P&gt;in a Qlik script file. O&lt;/P&gt;&lt;P&gt;Okay, so you&lt;/P&gt;&lt;P&gt;already have a separate file that has&lt;/P&gt;&lt;P&gt;the script that you're going to insert&lt;/P&gt;&lt;P&gt;into this app?&lt;/P&gt;&lt;P&gt;That's correct. I've created already a&lt;/P&gt;&lt;P&gt;file&lt;/P&gt;&lt;P&gt;that I've placed on the C drive.&lt;/P&gt;&lt;P&gt;Here we can see the content of this file.&lt;/P&gt;&lt;P&gt;So that's just&lt;/P&gt;&lt;P&gt;auto generated script that let you&lt;/P&gt;&lt;P&gt;create some&lt;/P&gt;&lt;P&gt;dummy data and you can insert this in a&lt;/P&gt;&lt;P&gt;Qlik Sense script&lt;/P&gt;&lt;P&gt;just by pressing ctrl 0 0 from the&lt;/P&gt;&lt;P&gt;script editor usually.&lt;/P&gt;&lt;P&gt;That's a great tip.&lt;/P&gt;&lt;P&gt;People may not be aware that if you just&lt;/P&gt;&lt;P&gt;go into script editor in Qlik Sense&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;type in ctrl 0 0, it'll auto generate&lt;/P&gt;&lt;P&gt;this&lt;/P&gt;&lt;P&gt;script, which will create dummy data for&lt;/P&gt;&lt;P&gt;testing apps.&lt;/P&gt;&lt;P&gt;That's a great tip Damien!&lt;/P&gt;&lt;P&gt;So now we're&lt;/P&gt;&lt;P&gt;gonna go to the&lt;/P&gt;&lt;P&gt;command prompt again and we are gonna&lt;/P&gt;&lt;P&gt;type&lt;/P&gt;&lt;P&gt;this line. And I need to&lt;/P&gt;&lt;P&gt;copy this app id.&lt;/P&gt;&lt;P&gt;The app has been saved you can go back&lt;/P&gt;&lt;P&gt;to the&lt;/P&gt;&lt;P&gt;data load editor and refresh the page.&lt;/P&gt;&lt;P&gt;And there's your script.&lt;/P&gt;&lt;P&gt;Then the next&lt;/P&gt;&lt;P&gt;step would be&lt;/P&gt;&lt;P&gt;to reload this app. The command which is&lt;/P&gt;&lt;P&gt;also available on this&lt;/P&gt;&lt;P&gt;same page on Qlik, but there now the&lt;/P&gt;&lt;P&gt;command that we're gonna type is this&lt;/P&gt;&lt;P&gt;one.&lt;/P&gt;&lt;P&gt;Same app id. Now I'm gonna go&lt;/P&gt;&lt;P&gt;back to the hub. I can go to&lt;/P&gt;&lt;P&gt;details. If I go to the reload history,&lt;/P&gt;&lt;P&gt;I can see that the app was reloaded&lt;/P&gt;&lt;P&gt;successfully and it took five seconds to&lt;/P&gt;&lt;P&gt;reload it.&lt;/P&gt;&lt;P&gt;That's pretty cool. So three lines of&lt;/P&gt;&lt;P&gt;Code; you have an app with script and&lt;/P&gt;&lt;P&gt;it's&lt;/P&gt;&lt;P&gt;reloaded. What are other kind of APIs&lt;/P&gt;&lt;P&gt;that you can do or what sort of&lt;/P&gt;&lt;P&gt;actions can you perform with APIs,&lt;/P&gt;&lt;P&gt;besides the three that you just showed&lt;/P&gt;&lt;P&gt;us?&lt;/P&gt;&lt;P&gt;Basically, anything that can be performed&lt;/P&gt;&lt;P&gt;in the console&lt;/P&gt;&lt;P&gt;can also be confirmed with the rest APIs,&lt;/P&gt;&lt;P&gt;which are for administrative tasks.&lt;/P&gt;&lt;P&gt;We have the JavaScript API which is for&lt;/P&gt;&lt;P&gt;any kind of&lt;/P&gt;&lt;P&gt;front-end action: which would be applying a&lt;/P&gt;&lt;P&gt;selection;&lt;/P&gt;&lt;P&gt;apply your bookmark; create alternate&lt;/P&gt;&lt;P&gt;state; all those kind of things.&lt;/P&gt;&lt;P&gt;And there's an RPC API where you&lt;/P&gt;&lt;P&gt;interact directly with the Qlik engine&lt;/P&gt;&lt;P&gt;through WebSockets.&lt;/P&gt;&lt;P&gt;Can be used to do any kind of action&lt;/P&gt;&lt;P&gt;that&lt;/P&gt;&lt;P&gt;is done inside an app. Then we have the&lt;/P&gt;&lt;P&gt;libraries.&lt;/P&gt;&lt;P&gt;The libraries are used to facilitate the&lt;/P&gt;&lt;P&gt;use of the APIs.&lt;/P&gt;&lt;P&gt;Enimga.js is to communicate with&lt;/P&gt;&lt;P&gt;the Qlik engine&lt;/P&gt;&lt;P&gt;API through JavaScript instead of&lt;/P&gt;&lt;P&gt;having to deal directly with json RPC.&lt;/P&gt;&lt;P&gt;And Enigma.go is the same thing for go.&lt;/P&gt;&lt;P&gt;And then you have Nebula.js that is&lt;/P&gt;&lt;P&gt;used to facilitate the creation of&lt;/P&gt;&lt;P&gt;extensions&lt;/P&gt;&lt;P&gt;and mashups.&lt;/P&gt;&lt;P&gt;And the demo you showed us&lt;/P&gt;&lt;P&gt;Before; that was with Qlik CLI?&lt;/P&gt;&lt;P&gt;That's correct. So the demo we did just&lt;/P&gt;&lt;P&gt;before was done with the tool that is&lt;/P&gt;&lt;P&gt;called Qlik CLI.&lt;/P&gt;&lt;P&gt;Okay. Where can we find out more&lt;/P&gt;&lt;P&gt;information about these APIs?&lt;/P&gt;&lt;P&gt;You can find more information about APIs&lt;/P&gt;&lt;P&gt;on&lt;/P&gt;&lt;P&gt;Qlik.Dev. Here, which are&lt;/P&gt;&lt;P&gt;getting you started the different things&lt;/P&gt;&lt;P&gt;that you need to&lt;/P&gt;&lt;P&gt;know before you use the APIs. Then the&lt;/P&gt;&lt;P&gt;different types of APIs are available&lt;/P&gt;&lt;P&gt;here.&lt;/P&gt;&lt;P&gt;You can see everything that&lt;/P&gt;&lt;P&gt;is actually a public API currently.&lt;/P&gt;&lt;P&gt;And the JavaScript API and another&lt;/P&gt;&lt;P&gt;RPC API.&lt;/P&gt;&lt;P&gt;Everything is in here. So you might&lt;/P&gt;&lt;P&gt;notice that some of them&lt;/P&gt;&lt;P&gt;are marker as “experimental.”&lt;/P&gt;&lt;P&gt;Yeah, I was wondering what that meant.&lt;/P&gt;&lt;P&gt;You can find what it means in the API&lt;/P&gt;&lt;P&gt;governance section.&lt;/P&gt;&lt;P&gt;There is no deprecation period for&lt;/P&gt;&lt;P&gt;Experimental.&lt;/P&gt;&lt;P&gt;“Stable” - you have a six-month deprecation&lt;/P&gt;&lt;P&gt;period and “locked” have a 12-month&lt;/P&gt;&lt;P&gt;deprecation period.&lt;/P&gt;&lt;P&gt;So, it's even more important in SaaS&lt;/P&gt;&lt;P&gt;because you don't have control on the&lt;/P&gt;&lt;P&gt;version that is run on the server as&lt;/P&gt;&lt;P&gt;it's constantly updated.&lt;/P&gt;&lt;P&gt;So which APIs would you recommend using&lt;/P&gt;&lt;P&gt;in a production environment?&lt;/P&gt;&lt;P&gt;So, in a production environment, it is&lt;/P&gt;&lt;P&gt;recommended to use a stable or locked&lt;/P&gt;&lt;P&gt;API.&lt;/P&gt;&lt;P&gt;What other sort of setup is&lt;/P&gt;&lt;P&gt;required before you can actually start&lt;/P&gt;&lt;P&gt;using APIs?&lt;/P&gt;&lt;P&gt;In order to use the API, you must take&lt;/P&gt;&lt;P&gt;into consideration&lt;/P&gt;&lt;P&gt;how you authenticate to the API and also&lt;/P&gt;&lt;P&gt;do some initial&lt;/P&gt;&lt;P&gt;setup for the authentication part. You&lt;/P&gt;&lt;P&gt;can&lt;/P&gt;&lt;P&gt;either authenticate with an API key&lt;/P&gt;&lt;P&gt;or through interactive authentication,&lt;/P&gt;&lt;P&gt;which is done through&lt;/P&gt;&lt;P&gt;the Qlik id or with your own IDP,&lt;/P&gt;&lt;P&gt;your identity provider.&lt;/P&gt;&lt;P&gt;Okay so one or the other, or&lt;/P&gt;&lt;P&gt;are there some situations where you&lt;/P&gt;&lt;P&gt;might need both?&lt;/P&gt;&lt;P&gt;Mainly API keys you would use for a&lt;/P&gt;&lt;P&gt;program that&lt;/P&gt;&lt;P&gt;is run server side. Where interactive&lt;/P&gt;&lt;P&gt;authentication you would use&lt;/P&gt;&lt;P&gt;for a program that use on the client&lt;/P&gt;&lt;P&gt;side. So for example,&lt;/P&gt;&lt;P&gt;when embedding an object in a browser,&lt;/P&gt;&lt;P&gt;then you would have to go with the&lt;/P&gt;&lt;P&gt;interactive authentication.&lt;/P&gt;&lt;P&gt;And it's also good to note that&lt;/P&gt;&lt;P&gt;anonymous users are not supported.&lt;/P&gt;&lt;P&gt;In Qlik Sense SaaS, you will have to&lt;/P&gt;&lt;P&gt;authenticate&lt;/P&gt;&lt;P&gt;if you want to use the APIs or embed a&lt;/P&gt;&lt;P&gt;Qlik Sense object in your website.&lt;/P&gt;&lt;P&gt;Well that makes sense. It's highly secure&lt;/P&gt;&lt;P&gt;so Qlik Sense SaaS&lt;/P&gt;&lt;P&gt;needs to know who is submitting commands&lt;/P&gt;&lt;P&gt;to it.&lt;/P&gt;&lt;P&gt;Then regarding the initial setup, we have&lt;/P&gt;&lt;P&gt;the web integration ID&lt;/P&gt;&lt;P&gt;and content security policy which are&lt;/P&gt;&lt;P&gt;used to&lt;/P&gt;&lt;P&gt;secure the ways that Qlik Sense objects&lt;/P&gt;&lt;P&gt;are integrated in a website.&lt;/P&gt;&lt;P&gt;Do you think you could show us an&lt;/P&gt;&lt;P&gt;example of actually embedding in a&lt;/P&gt;&lt;P&gt;website?&lt;/P&gt;&lt;P&gt;So I'm gonna show how to embed Qlik&lt;/P&gt;&lt;P&gt;Sense&lt;/P&gt;&lt;P&gt;in an iFrame.&lt;BR /&gt;I see we're back on your&lt;/P&gt;&lt;P&gt;tenant management console.&lt;/P&gt;&lt;P&gt;The first thing that we need to do would&lt;/P&gt;&lt;P&gt;be to set up&lt;/P&gt;&lt;P&gt;the web integration and the content&lt;/P&gt;&lt;P&gt;security policy.&lt;/P&gt;&lt;P&gt;In this case, I will be running my iFrame&lt;/P&gt;&lt;P&gt;on my IIS server which is installed on&lt;/P&gt;&lt;P&gt;my server here, which is called&amp;nbsp;&lt;BR /&gt;“qlik.server2.domain.local.”&lt;/P&gt;&lt;P&gt;Okay and that's just a machine you've&lt;/P&gt;&lt;P&gt;already set up a web server using IIS.&lt;/P&gt;&lt;P&gt;Yes, that's correct.&lt;/P&gt;&lt;P&gt;Here I'm getting my web integration id&lt;/P&gt;&lt;P&gt;that I will use later in my sample&lt;/P&gt;&lt;P&gt;and I will create also the content&lt;/P&gt;&lt;P&gt;security policy.&lt;/P&gt;&lt;P&gt;In this case, I'm also using the&amp;nbsp;&lt;BR /&gt;qlik.server2.domain.local and I will select&lt;/P&gt;&lt;P&gt;frame ancestors.&lt;/P&gt;&lt;P&gt;What is “frame ancestors” specifically or&lt;/P&gt;&lt;P&gt;why did you add that?&lt;/P&gt;&lt;P&gt;“Frame ancestors” means the parent&lt;/P&gt;&lt;P&gt;Website.&lt;/P&gt;&lt;P&gt;In here in the origin I've put my parent&lt;/P&gt;&lt;P&gt;website&lt;/P&gt;&lt;P&gt;and I will be allowed to embed in an&lt;/P&gt;&lt;P&gt;iFrame&lt;/P&gt;&lt;P&gt;only from this website. Now I'm gonna&lt;/P&gt;&lt;P&gt;use a sample that is available in our&lt;/P&gt;&lt;P&gt;knowledge base that can easily be found&lt;/P&gt;&lt;P&gt;from our support knowledge base or just&lt;/P&gt;&lt;P&gt;on Google.&lt;/P&gt;&lt;P&gt;Like just typing “Qlik Cloud Services&lt;/P&gt;&lt;P&gt;iFrame.”&lt;/P&gt;&lt;P&gt;What I'm gonna do is just copy all of&lt;/P&gt;&lt;P&gt;this.&lt;/P&gt;&lt;P&gt;So this is basically a script that will&lt;/P&gt;&lt;P&gt;allow you to embed a Qlik object into&lt;/P&gt;&lt;P&gt;an iFrame?&lt;/P&gt;&lt;P&gt;That's right. What I'm gonna do now is&lt;/P&gt;&lt;P&gt;just create a new file.&lt;/P&gt;&lt;P&gt;Paste the script. Save it. I'm gonna&lt;/P&gt;&lt;P&gt;move it to the is folder later on. What&lt;/P&gt;&lt;P&gt;the only reason why I'm not doing it&lt;/P&gt;&lt;P&gt;directly is that I don't have&lt;/P&gt;&lt;P&gt;rights to save directly in the IIS folder.&lt;/P&gt;&lt;P&gt;Now I've saved my file and you see that&lt;/P&gt;&lt;P&gt;I have the coloring&lt;/P&gt;&lt;P&gt;making this much more easier to read. The&lt;/P&gt;&lt;P&gt;next thing I'm gonna do is replace&lt;/P&gt;&lt;P&gt;“your tenant” by my actual tenant name.&lt;/P&gt;&lt;P&gt;That’ss a pretty handy way of updating&lt;/P&gt;&lt;P&gt;things like that.&lt;/P&gt;&lt;P&gt;Yes, control F to show this window and&lt;/P&gt;&lt;P&gt;then just&lt;/P&gt;&lt;P&gt;this button will just replace all. We are&lt;/P&gt;&lt;P&gt;gonna now copy the&lt;/P&gt;&lt;P&gt;web integration id that was just created&lt;/P&gt;&lt;P&gt;and paste it here. Then the next thing&lt;/P&gt;&lt;P&gt;that we are gonna need to update&lt;/P&gt;&lt;P&gt;is this link with the iFrame here.&lt;/P&gt;&lt;P&gt;We're gonna use a demo app for this&lt;/P&gt;&lt;P&gt;purpose.&lt;/P&gt;&lt;P&gt;“Consumer Sales” so it's not imported by&lt;/P&gt;&lt;P&gt;default in a Qlik Sense&lt;/P&gt;&lt;P&gt;Cloud environment but it can be&lt;/P&gt;&lt;P&gt;downloaded&lt;/P&gt;&lt;P&gt;from demos.qlik.com.&lt;/P&gt;&lt;P&gt;We need to go and fetch an actual object&lt;/P&gt;&lt;P&gt;that&lt;/P&gt;&lt;P&gt;exists.&lt;/P&gt;&lt;P&gt;For example, there is a map object here.&lt;/P&gt;&lt;P&gt;Just right click,&lt;/P&gt;&lt;P&gt;choose share and then choose embed.&lt;/P&gt;&lt;P&gt;Then you have the iFrame link here to&lt;/P&gt;&lt;P&gt;this object.&lt;/P&gt;&lt;P&gt;You can just click on “copy” and we're&lt;/P&gt;&lt;P&gt;gonna replace this whole block&lt;/P&gt;&lt;P&gt;here with iFrame code that we've just&lt;/P&gt;&lt;P&gt;copied.&lt;/P&gt;&lt;P&gt;Then we can just save this file. And I'm&lt;/P&gt;&lt;P&gt;gonna place&lt;/P&gt;&lt;P&gt;now this file in my IIS root folder&lt;/P&gt;&lt;P&gt;in here. Now I'm gonna&lt;/P&gt;&lt;P&gt;run Chrome as another user just to show&lt;/P&gt;&lt;P&gt;the whole flow&lt;/P&gt;&lt;P&gt;of how this sample will redirect you to&lt;/P&gt;&lt;P&gt;your&lt;/P&gt;&lt;P&gt;identity provider if you're not logged&lt;/P&gt;&lt;P&gt;in yet. Add a new person here and&lt;/P&gt;&lt;P&gt;I prefer to do that instead of running&lt;/P&gt;&lt;P&gt;as an incognito session because incognito&lt;/P&gt;&lt;P&gt;sessions have&lt;/P&gt;&lt;P&gt;some specific security settings that&lt;/P&gt;&lt;P&gt;would make it look different from an&lt;/P&gt;&lt;P&gt;actual session.&lt;/P&gt;&lt;P&gt;And this could be an alternative&lt;/P&gt;&lt;P&gt;to running the application as a&lt;/P&gt;&lt;P&gt;different user because you're just&lt;/P&gt;&lt;P&gt;creating&lt;/P&gt;&lt;P&gt;a new user to run the application. Great&lt;/P&gt;&lt;P&gt;tip!&lt;/P&gt;&lt;P&gt;That's correct. I'm now going to type the&lt;/P&gt;&lt;P&gt;name of my IIS server. All right.&lt;/P&gt;&lt;P&gt;So now&lt;/P&gt;&lt;P&gt;you're visiting that page you created.&lt;/P&gt;&lt;P&gt;Yes. I'm getting redirected now to my&lt;/P&gt;&lt;P&gt;identity provider which is Auth Zero in&lt;/P&gt;&lt;P&gt;this case.&lt;/P&gt;&lt;P&gt;Now we can see the iFrame loading&lt;/P&gt;&lt;P&gt;and we can also interact with this chart&lt;/P&gt;&lt;P&gt;by just clicking and making a selection.&lt;/P&gt;&lt;P&gt;And this is your iFrame page. Just&lt;/P&gt;&lt;P&gt;kind of blank at the top, blank at the&lt;/P&gt;&lt;P&gt;bottom but it has the object&lt;/P&gt;&lt;P&gt;embedded in the center,&lt;/P&gt;&lt;P&gt;That's correct, yes.&lt;BR /&gt;Very cool.&lt;/P&gt;&lt;P&gt;So what do you do when things don't go&lt;/P&gt;&lt;P&gt;perfectly as expected? How would you go&lt;/P&gt;&lt;P&gt;about troubleshooting&lt;/P&gt;&lt;P&gt;something going wrong?&lt;/P&gt;&lt;P&gt;When things go wrong,&lt;/P&gt;&lt;P&gt;we have different way of troubleshooting&lt;/P&gt;&lt;P&gt;based on which API&lt;/P&gt;&lt;P&gt;we want to troubleshoot. PowerShell or&lt;/P&gt;&lt;P&gt;cURL if you're on Mac or Linux.&lt;/P&gt;&lt;P&gt;To troubleshoot rest APIs, then browser&lt;/P&gt;&lt;P&gt;developer tools must be used. To&lt;/P&gt;&lt;P&gt;troubleshoot web applications&lt;/P&gt;&lt;P&gt;and check how things can be done from&lt;/P&gt;&lt;P&gt;the hub, for example.&lt;/P&gt;&lt;P&gt;And we have Fiddler which is a network&lt;/P&gt;&lt;P&gt;trace tool.&lt;/P&gt;&lt;P&gt;Okay, what are we looking at?&lt;/P&gt;&lt;P&gt;So here we&lt;/P&gt;&lt;P&gt;have a script&lt;/P&gt;&lt;P&gt;that is creating a new API&lt;/P&gt;&lt;P&gt;keys. In this case, I'm creating&lt;/P&gt;&lt;P&gt;an API key which would be named “test4”&lt;/P&gt;&lt;P&gt;and has a validity of one day. As an&lt;/P&gt;&lt;P&gt;administrator you also have a bit&lt;/P&gt;&lt;P&gt;more control on the API key. For example,&lt;/P&gt;&lt;P&gt;you can enable them; that's the first&lt;/P&gt;&lt;P&gt;step. When you create an API key&lt;/P&gt;&lt;P&gt;there's a tutorial for that on Qlik Dev.&lt;/P&gt;&lt;P&gt;There’s also if you go in tutorial and go&lt;/P&gt;&lt;P&gt;to generate your first API key.&lt;/P&gt;&lt;P&gt;You have the whole procedure on how to&lt;/P&gt;&lt;P&gt;enable them.&lt;/P&gt;&lt;P&gt;Basically you would need to enable them&lt;/P&gt;&lt;P&gt;Here.&lt;/P&gt;&lt;P&gt;Then you set a maximum token expiration&lt;/P&gt;&lt;P&gt;in this and then you can also set a&lt;/P&gt;&lt;P&gt;number of active API keys per user. So&lt;/P&gt;&lt;P&gt;that&lt;/P&gt;&lt;P&gt;you make sure that users don't create&lt;/P&gt;&lt;P&gt;tons of API keys&lt;/P&gt;&lt;P&gt;which would lower the security of the&lt;/P&gt;&lt;P&gt;system. Soing this&lt;/P&gt;&lt;P&gt;from the API is actually very handy&lt;/P&gt;&lt;P&gt;because when&lt;/P&gt;&lt;P&gt;an API key expired you would need to&lt;/P&gt;&lt;P&gt;renew it.&lt;/P&gt;&lt;P&gt;So that's my current API key that is&lt;/P&gt;&lt;P&gt;valid and I'm using&lt;/P&gt;&lt;P&gt;this one to request a new one. So when&lt;/P&gt;&lt;P&gt;you renew an API key you would need to&lt;/P&gt;&lt;P&gt;apply the same logic in your own code.&lt;/P&gt;&lt;P&gt;Before the expiration date,&lt;/P&gt;&lt;P&gt;run this kind of command; and get a new&lt;/P&gt;&lt;P&gt;API key and then update it from your&lt;/P&gt;&lt;P&gt;code.&lt;/P&gt;&lt;P&gt;Which would make it much more easier&lt;/P&gt;&lt;P&gt;because&lt;/P&gt;&lt;P&gt;you only need to get the API key from&lt;/P&gt;&lt;P&gt;the UI the first time you get one.&lt;/P&gt;&lt;P&gt;So Damien, when working with API keys,&lt;/P&gt;&lt;P&gt;what do you recommend?&lt;/P&gt;&lt;P&gt;I like to use PowerShell to troubleshoot&lt;/P&gt;&lt;P&gt;that&lt;/P&gt;&lt;P&gt;because you can see exactly what body&lt;/P&gt;&lt;P&gt;you are passing,&lt;/P&gt;&lt;P&gt;which header you are passing, and you can&lt;/P&gt;&lt;P&gt;in this case narrow down&lt;/P&gt;&lt;P&gt;if there's a logic problem in your own&lt;/P&gt;&lt;P&gt;code;&lt;/P&gt;&lt;P&gt;or if you're just passing the wrong&lt;/P&gt;&lt;P&gt;argument.&lt;/P&gt;&lt;P&gt;And where did you get the code that&lt;/P&gt;&lt;P&gt;we're looking at?&lt;/P&gt;&lt;P&gt;This little sample was&lt;/P&gt;&lt;P&gt;the reference of this API on Qlik Dev.&lt;/P&gt;&lt;P&gt;If you would go to&lt;/P&gt;&lt;P&gt;APIs and go to API keys then you have&lt;/P&gt;&lt;P&gt;“create an API key resource” with the&lt;/P&gt;&lt;P&gt;documentation on how to do it.&lt;/P&gt;&lt;P&gt;But if you're not very sure&lt;/P&gt;&lt;P&gt;on how that should be done, a good tip to&lt;/P&gt;&lt;P&gt;remember&lt;/P&gt;&lt;P&gt;is to go directly through the hub or&lt;/P&gt;&lt;P&gt;through the console.&lt;/P&gt;&lt;P&gt;In this case, we go to the hub because&lt;/P&gt;&lt;P&gt;the API keys are created from the hub.&lt;/P&gt;&lt;P&gt;In settings, and you go to “API keys.”&lt;/P&gt;&lt;P&gt;And you would open the browser developer&lt;/P&gt;&lt;P&gt;Tools.&lt;/P&gt;&lt;P&gt;And how did you open the browser&lt;/P&gt;&lt;P&gt;developer tools?&lt;/P&gt;&lt;P&gt;So that's done by pressing f12. You can&lt;/P&gt;&lt;P&gt;also find them&lt;/P&gt;&lt;P&gt;in the menu here, developer tools.&lt;/P&gt;&lt;P&gt;And going to the network tab here.&lt;/P&gt;&lt;P&gt;Then you would just do the action that&lt;/P&gt;&lt;P&gt;you are trying to accomplish with the&lt;/P&gt;&lt;P&gt;API. Put the name here, click on “generate.”&lt;/P&gt;&lt;P&gt;So here this succeeded. And you can&lt;/P&gt;&lt;P&gt;just click here and see the API&lt;/P&gt;&lt;P&gt;that was sent which is they currently&lt;/P&gt;&lt;P&gt;have here.&lt;/P&gt;&lt;P&gt;And if I just paste, you would see&lt;/P&gt;&lt;P&gt;that nothing has changed.&lt;/P&gt;&lt;P&gt;If you go a bit more down here and&lt;/P&gt;&lt;P&gt;look at the body, you would see for&lt;/P&gt;&lt;P&gt;example, expiry.&lt;/P&gt;&lt;P&gt;That's great seeing the&lt;/P&gt;&lt;P&gt;demonstration that the APIs are really&lt;/P&gt;&lt;P&gt;just performing the same actions as the&lt;/P&gt;&lt;P&gt;console.&lt;/P&gt;&lt;P&gt;And that you can find the exact code to&lt;/P&gt;&lt;P&gt;use via the developer tools.&lt;/P&gt;&lt;P&gt;Great tip Damien! So far everything's&lt;/P&gt;&lt;P&gt;been going right.&lt;/P&gt;&lt;P&gt;What could go wrong here?&lt;/P&gt;&lt;P&gt;What could go&lt;/P&gt;&lt;P&gt;wrong is that you have; for example, a&lt;/P&gt;&lt;P&gt;wrong&lt;/P&gt;&lt;P&gt;format in the expiry. And that would -&lt;/P&gt;&lt;P&gt;In this case, it's because I've reached&lt;/P&gt;&lt;P&gt;the maximum number of&lt;/P&gt;&lt;P&gt;API key that you're getting this error.&lt;/P&gt;&lt;P&gt;For that -&lt;/P&gt;&lt;P&gt;So I would need to actually delete the&lt;/P&gt;&lt;P&gt;API key.&lt;/P&gt;&lt;P&gt;I'm just gonna do it from the UI.&lt;/P&gt;&lt;P&gt;this time. I can delete this&lt;/P&gt;&lt;P&gt;test4 and go back to&lt;/P&gt;&lt;P&gt;PowerShell and try to create a new one.&lt;/P&gt;&lt;P&gt;But with&lt;/P&gt;&lt;P&gt;a wrong format and that would give you&lt;/P&gt;&lt;P&gt;this kind of error.&lt;/P&gt;&lt;P&gt;Error 400.&lt;/P&gt;&lt;P&gt;The next example,&lt;/P&gt;&lt;P&gt;that is embedding into a mashup&lt;/P&gt;&lt;P&gt;and also how to troubleshoot when it&lt;/P&gt;&lt;P&gt;comes to&lt;/P&gt;&lt;P&gt;mashup. For this example, I'm gonna&lt;/P&gt;&lt;P&gt;use this sample that can also be found&lt;/P&gt;&lt;P&gt;from the&lt;/P&gt;&lt;P&gt;support knowledge base. And gonna copy&lt;/P&gt;&lt;P&gt;this code.&lt;/P&gt;&lt;P&gt;I would need to create two files this&lt;/P&gt;&lt;P&gt;Time.&lt;/P&gt;&lt;P&gt;What tool do you use to create those&lt;/P&gt;&lt;P&gt;mashup files?&lt;/P&gt;&lt;P&gt;I'm gonna go in with Visual Studio to&lt;/P&gt;&lt;P&gt;create a new file.&lt;/P&gt;&lt;P&gt;Paste the code here. Save.&lt;/P&gt;&lt;P&gt;I'm going to call it “helpdesk.html.”&lt;/P&gt;&lt;P&gt;I'm also going to replace your tenant by&lt;/P&gt;&lt;P&gt;my actual&lt;/P&gt;&lt;P&gt;tenant name.&lt;/P&gt;&lt;P&gt;Is there anything else that&lt;/P&gt;&lt;P&gt;needs to be updated in this file?&lt;/P&gt;&lt;P&gt;Not in this file. The second file that we&lt;/P&gt;&lt;P&gt;are going to create is a JavaScript file.&lt;/P&gt;&lt;P&gt;Just gonna copy this whole code. Create a&lt;/P&gt;&lt;P&gt;new file.&lt;/P&gt;&lt;P&gt;Paste it here. I'm just gonna save it as&lt;/P&gt;&lt;P&gt;“helpdesk.js”&lt;/P&gt;&lt;P&gt;So if you call it something else,&lt;/P&gt;&lt;P&gt;you would also need to update it here.&lt;/P&gt;&lt;P&gt;And what is this mashup that you're&lt;/P&gt;&lt;P&gt;creating supposed to do?&lt;/P&gt;&lt;P&gt;This mashup&lt;/P&gt;&lt;P&gt;will just show one object in&lt;/P&gt;&lt;P&gt;a dev element and can add a few more&lt;/P&gt;&lt;P&gt;actions.&lt;/P&gt;&lt;P&gt;And see what to troubleshoot when it&lt;/P&gt;&lt;P&gt;goes wrong.&lt;/P&gt;&lt;P&gt;First of all, I'm going to replace your&lt;/P&gt;&lt;P&gt;tenant by my tenant name.&lt;/P&gt;&lt;P&gt;Then I'm going to update the web&lt;/P&gt;&lt;P&gt;integration id.&lt;/P&gt;&lt;P&gt;And again, that's the id that allows your&lt;/P&gt;&lt;P&gt;private web server to interact with your&lt;/P&gt;&lt;P&gt;Qlik Sense SaaS environment?&lt;/P&gt;&lt;P&gt;Yes. Now we're gonna actually&lt;/P&gt;&lt;P&gt;need to update the app id.&lt;/P&gt;&lt;P&gt;And also the object id is the object&lt;/P&gt;&lt;P&gt;that we want to show.&lt;/P&gt;&lt;P&gt;Just gonna go back to the hub again and&lt;/P&gt;&lt;P&gt;pick up my favorite&lt;/P&gt;&lt;P&gt;“Consumer Sales.”&lt;/P&gt;&lt;P&gt;So this time we can pick up this&lt;/P&gt;&lt;P&gt;colorful&lt;/P&gt;&lt;P&gt;chart. Go in “share” and “embed”&lt;/P&gt;&lt;P&gt;but this time we will just need to copy&lt;/P&gt;&lt;P&gt;this&lt;/P&gt;&lt;P&gt;object id here. And paste it&lt;/P&gt;&lt;P&gt;here and then update the app id.&lt;/P&gt;&lt;P&gt;The easiest way is just to copy it from the&lt;/P&gt;&lt;P&gt;URL here.&lt;/P&gt;&lt;P&gt;Then just save the file. And now we are&lt;/P&gt;&lt;P&gt;gonna&lt;/P&gt;&lt;P&gt;copy those two files that we just&lt;/P&gt;&lt;P&gt;created to our IIS&lt;/P&gt;&lt;P&gt;web server.&lt;/P&gt;&lt;P&gt;So I'm just gonna reuse that same&lt;/P&gt;&lt;P&gt;session and&lt;/P&gt;&lt;P&gt;just go to “helpdesk.html.”&lt;/P&gt;&lt;P&gt;That was a great demo when everything is&lt;/P&gt;&lt;P&gt;working. Would you be able to show us an&lt;/P&gt;&lt;P&gt;example where things&lt;/P&gt;&lt;P&gt;aren't behaving as expected, so we can&lt;/P&gt;&lt;P&gt;see how to troubleshoot that?&lt;/P&gt;&lt;P&gt;This example is actually exactly the&lt;/P&gt;&lt;P&gt;same one, but I've added these two lines.&lt;/P&gt;&lt;P&gt;One line which is to show the current&lt;/P&gt;&lt;P&gt;Selections in an object.&lt;/P&gt;&lt;P&gt;And another line which is&lt;/P&gt;&lt;P&gt;done to apply a bookmark.&lt;/P&gt;&lt;P&gt;Okay and that bookmark is called “Product&lt;/P&gt;&lt;P&gt;Group”?&lt;/P&gt;&lt;P&gt;That's correct. And I've also moved&lt;/P&gt;&lt;P&gt;around the object and&lt;/P&gt;&lt;P&gt;resized so that it looks a little bit&lt;/P&gt;&lt;P&gt;nicer.&lt;/P&gt;&lt;P&gt;Now we're gonna see this example&lt;/P&gt;&lt;P&gt;in our browser with the browser&lt;/P&gt;&lt;P&gt;developer tools open&lt;/P&gt;&lt;P&gt;so that I can see what is happening. I'm&lt;/P&gt;&lt;P&gt;in the network tab,&lt;/P&gt;&lt;P&gt;and I have filtered on websocket.&lt;/P&gt;&lt;P&gt;In my bookmark I have two selections&lt;/P&gt;&lt;P&gt;applied, but this bookmark&lt;/P&gt;&lt;P&gt;seemed to not have been applied. I'm now&lt;/P&gt;&lt;P&gt;going to check&lt;/P&gt;&lt;P&gt;in the websocket messages why that&lt;/P&gt;&lt;P&gt;bookmark didn't get applied.&lt;/P&gt;&lt;P&gt;I'm gonna search for “apply”&lt;/P&gt;&lt;P&gt;which would tell me - that's exactly the&lt;/P&gt;&lt;P&gt;command that I run – “apply&lt;/P&gt;&lt;P&gt;bookmark.” So it was actually sent. The&lt;/P&gt;&lt;P&gt;request was sent; I can confirm that&lt;/P&gt;&lt;P&gt;from here. And now I'm gonna check the&lt;/P&gt;&lt;P&gt;response of this request.&lt;/P&gt;&lt;P&gt;For that need to search for the ID&lt;/P&gt;&lt;P&gt;number 4.&lt;/P&gt;&lt;P&gt;So hopefully the response from Qlik&lt;/P&gt;&lt;P&gt;Sense will tell us what happened?&lt;/P&gt;&lt;P&gt;That's correct. And here we can see&lt;/P&gt;&lt;P&gt;“qSuccess” that was “false” and means&lt;/P&gt;&lt;P&gt;that applying this bookmark did not&lt;/P&gt;&lt;P&gt;succeed.&lt;/P&gt;&lt;P&gt;We can see here that the parameter that&lt;/P&gt;&lt;P&gt;was passed was “product&lt;/P&gt;&lt;P&gt;group.” So let's go and check the&lt;/P&gt;&lt;P&gt;documentation for “apply bookmark”&lt;/P&gt;&lt;P&gt;and see if we did things correctly. We&lt;/P&gt;&lt;P&gt;were using&lt;/P&gt;&lt;P&gt;“app.bookmark.apply” which&amp;nbsp;&lt;BR /&gt;is part of the capability&lt;/P&gt;&lt;P&gt;API.&lt;/P&gt;&lt;P&gt;I'm now gonna go to the help site. The&lt;/P&gt;&lt;P&gt;capability API&lt;/P&gt;&lt;P&gt;is actually almost the same in Qlik&lt;/P&gt;&lt;P&gt;Sense for Windows and&lt;/P&gt;&lt;P&gt;Qlik Sense for SaaS. And on&lt;/P&gt;&lt;P&gt;help.qlik.com&lt;/P&gt;&lt;P&gt;you also have the same documentation on&lt;/P&gt;&lt;P&gt;qlik.dev.&lt;/P&gt;&lt;P&gt;You have to pass a bookmark id. So the&lt;/P&gt;&lt;P&gt;bookmark id here&lt;/P&gt;&lt;P&gt;which should look in this example like&lt;/P&gt;&lt;P&gt;this.&lt;/P&gt;&lt;P&gt;But what we've passed is the bookmark&lt;/P&gt;&lt;P&gt;name, which is incorrect.&lt;/P&gt;&lt;P&gt;Okay so; in our code, we entered the name&lt;/P&gt;&lt;P&gt;of the bookmark instead of the actual&lt;/P&gt;&lt;P&gt;string which is the bookmark id?&lt;/P&gt;&lt;P&gt;That's correct. So the bookmark id&lt;/P&gt;&lt;P&gt;actually would wither be in this format&lt;/P&gt;&lt;P&gt;or this format.&lt;BR /&gt;It would have been so&lt;/P&gt;&lt;P&gt;much nicer if it returned an&lt;/P&gt;&lt;P&gt;error message instead of just not&lt;/P&gt;&lt;P&gt;working. But this is a great&lt;/P&gt;&lt;P&gt;troubleshooting tip, so you can see&lt;/P&gt;&lt;P&gt;why that actually happened and the&lt;/P&gt;&lt;P&gt;reasons behind it.&lt;/P&gt;&lt;P&gt;We're gonna find this&lt;/P&gt;&lt;P&gt;bookmark id in order to apply it. There's&lt;/P&gt;&lt;P&gt;not really an easy way to find this&lt;/P&gt;&lt;P&gt;bookmark id from the UI,&lt;/P&gt;&lt;P&gt;unfortunately. We are gonna apply this&lt;/P&gt;&lt;P&gt;bookmark from the UI&lt;/P&gt;&lt;P&gt;and check from the developer tools its&lt;/P&gt;&lt;P&gt;id in the same way that we were&lt;/P&gt;&lt;P&gt;shooting our mashup,&lt;/P&gt;&lt;P&gt;we would open the browser developer&lt;/P&gt;&lt;P&gt;tools with f12 or through the chrome&lt;/P&gt;&lt;P&gt;“more tools”, “browser developer tools.” In the&lt;/P&gt;&lt;P&gt;network tab -&lt;/P&gt;&lt;P&gt;and refresh the page.&lt;/P&gt;&lt;P&gt;Then filter on WS - web sockets&lt;/P&gt;&lt;P&gt;and take this WebSocket here.&lt;/P&gt;&lt;P&gt;Now we're gonna apply this bookmark.&lt;/P&gt;&lt;P&gt;So search for “apply” and we are finding&lt;/P&gt;&lt;P&gt;here&lt;/P&gt;&lt;P&gt;this method with “apply bookmark”&lt;/P&gt;&lt;P&gt;and in the parameter. Here we see the&lt;/P&gt;&lt;P&gt;actual&lt;/P&gt;&lt;P&gt;bookmark id. So we can copy the bookmark&lt;/P&gt;&lt;P&gt;id from here;&lt;/P&gt;&lt;P&gt;and just put it in our code here. Just&lt;/P&gt;&lt;P&gt;save. Copy&lt;/P&gt;&lt;P&gt;again to my IIS server.&lt;/P&gt;&lt;P&gt;Just to be sure that my mashup works now;&lt;/P&gt;&lt;P&gt;Remove the bookmark first, and&lt;/P&gt;&lt;P&gt;close out of this. And now I'm gonna go&lt;/P&gt;&lt;P&gt;back to my mashup.&lt;/P&gt;&lt;P&gt;And refresh the page.&lt;/P&gt;&lt;P&gt;And I see here that I now have - my&lt;/P&gt;&lt;P&gt;bookmark got&lt;/P&gt;&lt;P&gt;applied with the two selection.&lt;/P&gt;&lt;P&gt;The last&lt;/P&gt;&lt;P&gt;tool that we had was a Fiddler which I&lt;/P&gt;&lt;P&gt;can briefly talk about.&lt;/P&gt;&lt;P&gt;And when would you use Fiddler?&lt;/P&gt;&lt;P&gt;Fiddler can be used&lt;/P&gt;&lt;P&gt;to trace the network. it's is a little&lt;/P&gt;&lt;P&gt;bit similar to what you see actually&lt;/P&gt;&lt;P&gt;in the browser the development tool - network tab.&lt;/P&gt;&lt;P&gt;But you would use it where&lt;/P&gt;&lt;P&gt;you are troubleshooting an API that is&lt;/P&gt;&lt;P&gt;not run from the browser.&lt;/P&gt;&lt;P&gt;So for example, if you run something on&lt;/P&gt;&lt;P&gt;your&lt;/P&gt;&lt;P&gt;server. An application on your server&lt;/P&gt;&lt;P&gt;that is sending requests to&lt;/P&gt;&lt;P&gt;Qlik cloud; then you would use Fiddler&lt;/P&gt;&lt;P&gt;to troubleshoot if the request is going&lt;/P&gt;&lt;P&gt;through.&lt;/P&gt;&lt;P&gt;What kind of application might that be,&lt;/P&gt;&lt;P&gt;just as an example?&lt;/P&gt;&lt;P&gt;For example, if you&lt;/P&gt;&lt;P&gt;want to run&lt;/P&gt;&lt;P&gt;an automation tool on your server: a&lt;/P&gt;&lt;P&gt;JS application that is triggering tasks,&lt;/P&gt;&lt;P&gt;then triggering another task on&lt;/P&gt;&lt;P&gt;completion;&lt;/P&gt;&lt;P&gt;all those kind of things. And as it&lt;/P&gt;&lt;P&gt;doesn't run in a browser, you won't be&lt;/P&gt;&lt;P&gt;able to use the network&lt;/P&gt;&lt;P&gt;tab, but you would be able to use Fiddler.&lt;/P&gt;&lt;P&gt;Just&lt;/P&gt;&lt;P&gt;install Fiddler on the machine or from&lt;/P&gt;&lt;P&gt;where that application is running&lt;/P&gt;&lt;P&gt;and you would be able to see the same&lt;/P&gt;&lt;P&gt;kind of things that you see in the&lt;/P&gt;&lt;P&gt;network tab&lt;/P&gt;&lt;P&gt;in the browser developer tool.&lt;/P&gt;&lt;P&gt;So what&lt;/P&gt;&lt;P&gt;are some other resources people can use&lt;/P&gt;&lt;P&gt;to help troubleshoot?&lt;/P&gt;&lt;P&gt;When things go wrong, you can use some of&lt;/P&gt;&lt;P&gt;those additional resources.&lt;/P&gt;&lt;P&gt;Collaboration and assistance on Qlik&lt;/P&gt;&lt;P&gt;Community.&lt;/P&gt;&lt;P&gt;On the Qlik Branch slack channel.&lt;/P&gt;&lt;P&gt;There's documentation on qlik.dev and&lt;/P&gt;&lt;P&gt;help.Qlik.com.&lt;/P&gt;&lt;P&gt;and finally, if you find a defect, you can&lt;/P&gt;&lt;P&gt;report it to Qlik Support.&lt;/P&gt;&lt;P&gt;Okay everyone now it's time for&lt;/P&gt;&lt;P&gt;Q and A.&lt;/P&gt;&lt;P&gt;Please submit your questions through&lt;/P&gt;&lt;P&gt;the Q and A panel on the left side of your&lt;/P&gt;&lt;P&gt;On24 console.&lt;/P&gt;&lt;P&gt;Damien, which question would you like to&lt;/P&gt;&lt;P&gt;address first?&lt;/P&gt;&lt;P&gt;The first question uh is&lt;/P&gt;&lt;P&gt;how to set up a Qlik Sense object in a&lt;/P&gt;&lt;P&gt;mashup to automatically refresh.&lt;/P&gt;&lt;P&gt;It's not very clear to me if refresh&lt;/P&gt;&lt;P&gt;means to refresh the page or refresh the&lt;/P&gt;&lt;P&gt;data.&lt;/P&gt;&lt;P&gt;So to refresh the page, you would need to do&lt;/P&gt;&lt;P&gt;it from the mashup code. To&lt;/P&gt;&lt;P&gt;refresh so just reload the page so that&lt;/P&gt;&lt;P&gt;it shows the most recent state.&lt;/P&gt;&lt;P&gt;If refresh refers to refresh data then&lt;/P&gt;&lt;P&gt;you would need to trigger&lt;/P&gt;&lt;P&gt;the reload through the either to the&lt;/P&gt;&lt;P&gt;Javascript API or through the errors API&lt;/P&gt;&lt;P&gt;more documentation can go basically&lt;/P&gt;&lt;P&gt;found on Qlik.dev on how to&lt;/P&gt;&lt;P&gt;to do that well actually for the rest&lt;/P&gt;&lt;P&gt;APIs&lt;/P&gt;&lt;P&gt;is you will need to do it from the&lt;/P&gt;&lt;P&gt;close here create a reload&lt;/P&gt;&lt;P&gt;reload an app specified by an app id&lt;/P&gt;&lt;P&gt;and if you want to do it through the&lt;/P&gt;&lt;P&gt;Javascript APIs androids&lt;/P&gt;&lt;P&gt;also in the capability API&lt;/P&gt;&lt;P&gt;I have a question for you Damien an&lt;/P&gt;&lt;P&gt;example like this&lt;/P&gt;&lt;P&gt;like reloading where there are several&lt;/P&gt;&lt;P&gt;different APIs that can perform the same&lt;/P&gt;&lt;P&gt;function&lt;/P&gt;&lt;P&gt;how do you decide which one to use like&lt;/P&gt;&lt;P&gt;for reloading the way that you would&lt;/P&gt;&lt;P&gt;decide which one to use would be&lt;/P&gt;&lt;P&gt;if you want to do it as&lt;/P&gt;&lt;P&gt;an administrator or as an app developer&lt;/P&gt;&lt;P&gt;basically this the one from the from the&lt;/P&gt;&lt;P&gt;capability API would be the same thing&lt;/P&gt;&lt;P&gt;then pressing the reload button&lt;/P&gt;&lt;P&gt;in the data load editor and that can&lt;/P&gt;&lt;P&gt;only be performed by&lt;/P&gt;&lt;P&gt;a user that is a professional user and&lt;/P&gt;&lt;P&gt;that would also&lt;/P&gt;&lt;P&gt;block the app while the reload is being&lt;/P&gt;&lt;P&gt;performed while if you do it through a&lt;/P&gt;&lt;P&gt;task&lt;/P&gt;&lt;P&gt;that won't unlock the app when the&lt;/P&gt;&lt;P&gt;reloaded perform and it will just&lt;/P&gt;&lt;P&gt;refresh once it's finished if you're&lt;/P&gt;&lt;P&gt;using the app&lt;/P&gt;&lt;P&gt;in a custom interface and are doing&lt;/P&gt;&lt;P&gt;modification on the app and you want to&lt;/P&gt;&lt;P&gt;reload from that interface then you will&lt;/P&gt;&lt;P&gt;want to use the capability API to reload&lt;/P&gt;&lt;P&gt;it&lt;/P&gt;&lt;P&gt;while if you just want it to reload&lt;/P&gt;&lt;P&gt;transparently to the user then you would&lt;/P&gt;&lt;P&gt;use the rest API to reload it as a task&lt;/P&gt;&lt;P&gt;okay next question the next question&lt;/P&gt;&lt;P&gt;is will this same API&lt;/P&gt;&lt;P&gt;calls work with QlikView server&lt;/P&gt;&lt;P&gt;the QlikView server has a very&lt;/P&gt;&lt;P&gt;different&lt;/P&gt;&lt;P&gt;structure and APIs than the Qlik Sense&lt;/P&gt;&lt;P&gt;some of the API calls that we can find&lt;/P&gt;&lt;P&gt;here on Qlik Dev actually command to&lt;/P&gt;&lt;P&gt;Qlik Sense on premise and Qlik Sense&lt;/P&gt;&lt;P&gt;SaaS&lt;/P&gt;&lt;P&gt;but we are completely different on the&lt;/P&gt;&lt;P&gt;one from QlikView server&lt;/P&gt;&lt;P&gt;so the answer would be no you cannot use&lt;/P&gt;&lt;P&gt;it with QlikView server&lt;/P&gt;&lt;P&gt;the next question is can you enable a&lt;/P&gt;&lt;P&gt;reload button&lt;/P&gt;&lt;P&gt;for user to manually trigger a load from&lt;/P&gt;&lt;P&gt;an app&lt;/P&gt;&lt;P&gt;using next an extension that's actually&lt;/P&gt;&lt;P&gt;possible&lt;/P&gt;&lt;P&gt;you can program an extension that would&lt;/P&gt;&lt;P&gt;call either&lt;/P&gt;&lt;P&gt;a task to reload the the app or just&lt;/P&gt;&lt;P&gt;reload the app to the capability API&lt;/P&gt;&lt;P&gt;like you would press the reload button&lt;/P&gt;&lt;P&gt;from the data load editor.&lt;/P&gt;&lt;P&gt;However this requires different sets&lt;/P&gt;&lt;P&gt;of rights. If you read it from the&lt;/P&gt;&lt;P&gt;capability API the user that click that&lt;/P&gt;&lt;P&gt;button will&lt;/P&gt;&lt;P&gt;need to have operational license&lt;/P&gt;&lt;P&gt;assigned and also&lt;/P&gt;&lt;P&gt;have rights to modify that app well if&lt;/P&gt;&lt;P&gt;you do it on&lt;/P&gt;&lt;P&gt;as a task then it will need the user&lt;/P&gt;&lt;P&gt;will need to&lt;/P&gt;&lt;P&gt;have sufficient administrative&lt;/P&gt;&lt;P&gt;privileges to run the task&lt;/P&gt;&lt;P&gt;the next question is can you integrate&lt;/P&gt;&lt;P&gt;the same&lt;/P&gt;&lt;P&gt;API with Qlik Sense SaaS and Qlik&lt;/P&gt;&lt;P&gt;Sense on Windows&lt;/P&gt;&lt;P&gt;as I said a bit earlier&lt;/P&gt;&lt;P&gt;some of those API like the capability&lt;/P&gt;&lt;P&gt;API&lt;/P&gt;&lt;P&gt;are command to Qlik Sense on Windows&lt;/P&gt;&lt;P&gt;and Qlik Sense says more than 90 percent&lt;/P&gt;&lt;P&gt;of what&lt;/P&gt;&lt;P&gt;of the capability API is actually uh the&lt;/P&gt;&lt;P&gt;same in quick Sense&lt;/P&gt;&lt;P&gt;SaaS and Qlik Sense on Windows as well&lt;/P&gt;&lt;P&gt;as&lt;/P&gt;&lt;P&gt;Qlik Sense engine API it is on our pc&lt;/P&gt;&lt;P&gt;is exactly the same also there are some&lt;/P&gt;&lt;P&gt;a few exceptions that&lt;/P&gt;&lt;P&gt;do not work in SaaS or do not work in&lt;/P&gt;&lt;P&gt;Windows but they are mostly the same&lt;/P&gt;&lt;P&gt;and then when it comes to the rest API&lt;/P&gt;&lt;P&gt;they are completely different&lt;/P&gt;&lt;P&gt;than the one in Windows because that's&lt;/P&gt;&lt;P&gt;those outcome&lt;/P&gt;&lt;P&gt;different services that are running in&lt;/P&gt;&lt;P&gt;the background&lt;/P&gt;&lt;P&gt;when it comes to everything that is&lt;/P&gt;&lt;P&gt;administrative&lt;/P&gt;&lt;P&gt;the next question is what is the&lt;/P&gt;&lt;P&gt;recommended API to call to trigger&lt;/P&gt;&lt;P&gt;reload&lt;/P&gt;&lt;P&gt;task when it comes to trigger reload&lt;/P&gt;&lt;P&gt;tasks&lt;/P&gt;&lt;P&gt;the the best way is to do it with with&lt;/P&gt;&lt;P&gt;the rest API&lt;/P&gt;&lt;P&gt;whether reloads API is that you can&lt;/P&gt;&lt;P&gt;description just shown earlier here&lt;/P&gt;&lt;P&gt;so that's the easiest way to trigger a&lt;/P&gt;&lt;P&gt;task and the most common one also&lt;/P&gt;&lt;P&gt;okay the next question&lt;/P&gt;&lt;P&gt;is does accessing a mashup require a&lt;/P&gt;&lt;P&gt;license for the user&lt;/P&gt;&lt;P&gt;any user that would access a mashup will&lt;/P&gt;&lt;P&gt;need a license&lt;/P&gt;&lt;P&gt;if the user is only visualizing the&lt;/P&gt;&lt;P&gt;object then&lt;/P&gt;&lt;P&gt;he will only need an analyzer license&lt;/P&gt;&lt;P&gt;if the user is actually doing some&lt;/P&gt;&lt;P&gt;change to the app through the master&lt;/P&gt;&lt;P&gt;then he would need a professional&lt;/P&gt;&lt;P&gt;license&lt;/P&gt;&lt;P&gt;that makes Sense okay Damien we have&lt;/P&gt;&lt;P&gt;time for one last question&lt;/P&gt;&lt;P&gt;the last question is&lt;/P&gt;&lt;P&gt;is it possible to export an app as a qvf&lt;/P&gt;&lt;P&gt;file with the API you can export an app&lt;/P&gt;&lt;P&gt;with the rest&lt;/P&gt;&lt;P&gt;API you would go in this case to apps&lt;/P&gt;&lt;P&gt;and you can search for export&lt;/P&gt;&lt;P&gt;here export a specific app and you have&lt;/P&gt;&lt;P&gt;the documentation&lt;/P&gt;&lt;P&gt;on how to export it here&lt;/P&gt;&lt;P&gt;so we're done with this session for&lt;/P&gt;&lt;P&gt;today thank you everybody for attending&lt;/P&gt;&lt;P&gt;okay great thank you everyone we hope&lt;/P&gt;&lt;P&gt;you enjoyed this session&lt;/P&gt;&lt;P&gt;thanks to Damien for presenting we&lt;/P&gt;&lt;P&gt;appreciate getting experts like Damien&lt;/P&gt;&lt;P&gt;to share with us&lt;/P&gt;&lt;P&gt;here's our legal disclaimer and thank&lt;/P&gt;&lt;P&gt;you once again&lt;/P&gt;&lt;P&gt;have a great rest of your day&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Jan 2021 09:14:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1753109#M129</guid>
      <dc:creator>Troy_Raney</dc:creator>
      <dc:date>2021-01-21T09:14:09Z</dc:date>
    </item>
    <item>
      <title>Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754032#M130</link>
      <description>&lt;P&gt;Thanks guys, really good webinar.&lt;/P&gt;&lt;P&gt;I have a question - how do you see SaaS working for a QAP like experience? i.e. creating mashups and distributing to anonomous users?&lt;/P&gt;</description>
      <pubDate>Tue, 20 Oct 2020 10:22:11 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754032#M130</guid>
      <dc:creator>Carl_Hunter</dc:creator>
      <dc:date>2020-10-20T10:22:11Z</dc:date>
    </item>
    <item>
      <title>Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754921#M131</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/17411"&gt;@Carl_Hunter&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks. Currently anonymous users are not supported. I wish I could say that they will be in the future, but I can't say that.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Troy&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2020 11:56:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754921#M131</guid>
      <dc:creator>Troy_Raney</dc:creator>
      <dc:date>2020-10-22T11:56:57Z</dc:date>
    </item>
    <item>
      <title>Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754935#M132</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/36001"&gt;@Troy_Raney&lt;/a&gt;, thanks for the response. I guess my&amp;nbsp; follow-up question is, how do we see a QAP like experience working with SaaS, or, will it simply not, or, will it require users to be authenticated via whatever IDP first?&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2020 12:25:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754935#M132</guid>
      <dc:creator>Carl_Hunter</dc:creator>
      <dc:date>2020-10-22T12:25:42Z</dc:date>
    </item>
    <item>
      <title>Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754947#M133</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/17411"&gt;@Carl_Hunter&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't say too much about the roadmap, as plans could change.&lt;/P&gt;&lt;P&gt;In the current situation, each user needs to be authenticated, and as we do not have any core-based license or capacity analyzer license for Qlik Sense SaaS yet, you will need to purchase an analyzer license for each person viewing the site.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;Damien&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2020 12:52:45 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1754947#M133</guid>
      <dc:creator>Damien_V</dc:creator>
      <dc:date>2020-10-22T12:52:45Z</dc:date>
    </item>
    <item>
      <title>Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1755064#M134</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/17411"&gt;@Carl_Hunter&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;Today, you can achieve a QAP-like experience by pointing your mashups to read from a Qlik Sense Enterprise SaaS instance instead of a windows instance. There are some differences to be aware of, including but not limited to:&lt;/P&gt;&lt;P&gt;1. Authentication is different as you have probably experienced. We just released JWT authorization capabilities in Qlik Sense Enterprise SaaS which works very similarly to the windows JWT virtual proxy. You can learn more about setting it up here:&amp;nbsp;&lt;A href="https://qlik.dev/tutorials/create-signed-tokens-for-jwt-authorization" target="_blank"&gt;https://qlik.dev/tutorials/create-signed-tokens-for-jwt-authorization.&lt;/A&gt;&lt;BR /&gt;You will need to contact your account manager to request this functionality.&lt;/P&gt;&lt;P&gt;2. Another key difference is how inclusion (fka whitelist) lists work in SaaS compared to Windows. In SaaS, web integration IDs enable the cross site capabilities most mashups require. These replace the inclusion list added to the virtual proxy. You can learn more about web integrations here:&amp;nbsp;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-adminster-web-integrations.htm" target="_blank"&gt;https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-adminster-web-integrations.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;3. Content Security Policy (CSP) is needed if you are embedding Qlik using iframes. You can learn more about CSP here:&amp;nbsp;&lt;A href="https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-content-security-policy.htm" target="_blank"&gt;https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-content-security-policy.htm&amp;nbsp;&lt;/A&gt;this does not exist in Qlik Sense Enterprise on Windows.&lt;/P&gt;&lt;P&gt;Regarding your question on anonymous:&lt;/P&gt;&lt;P&gt;Currently, anonymous usage is not supported in Qlik Sense Enterprise SaaS. It is a requested capability and we are investigating, analyzing, and designing a mechanism to offer it. As stated earlier in the thread, no timeframes available for when.&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;jg&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2020 15:37:54 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1755064#M134</guid>
      <dc:creator>Jeffrey_Goldberg</dc:creator>
      <dc:date>2020-10-22T15:37:54Z</dc:date>
    </item>
    <item>
      <title>Re: STT - Leveraging APIs on Qlik Sense Enterprise SaaS</title>
      <link>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1755202#M135</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/45015"&gt;@Jeffrey_Goldberg&lt;/a&gt;&amp;nbsp;, brilliant, thanks for the detailed answer, I'm sure others will find it incredibly useful too &lt;span class="lia-unicode-emoji" title=":thumbs_up:"&gt;👍&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Oct 2020 22:00:48 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Techspert-Talks/STT-Leveraging-APIs-on-Qlik-Sense-Enterprise-SaaS/m-p/1755202#M135</guid>
      <dc:creator>Carl_Hunter</dc:creator>
      <dc:date>2020-10-22T22:00:48Z</dc:date>
    </item>
  </channel>
</rss>

