Сервер Tableau, размещенный на AWS, и встраивание с помощью Django

У меня есть сервер Tableau, настроенный на экземпляре AWS. Я опубликовал приборную панель на сервере (используя пробную версию). Сейчас я пытаюсь отобразить ее на веб-странице локально. Я пробовал следующие шаги:

Примечание: Я заменил свой код с оригинальным экземпляром ec2 на "ec2-server" только в целях конфиденциальности.

  1. I copied the embedded code from the share option in the server and pasted in the html file that i am rendering in django. It requests me to log in to the server and then displays the same login page again and again. ( I tried this method with tableau online and instantly i was able to display my dashboard).

First

login

Предлагается снова войти в систему, но ничего не происходит...

lgin_Again

Затем я ознакомился с Trusted Authentication из документации Tableau и придумал следующий код для получения билета и внедрения его в представление, которое отображает мою страницу home.html :

from django.shortcuts import render
from django.http import HttpResponse
from rest_framework import status
from rest_framework.response import Response
import requests
from rest_framework.decorators import api_view
import sys

def home(request):
    #I have replaced my code with original ec2 instance with "ec2-server" just for confidential purpose.
    url = 'http://ec2-server.compute-1.amazonaws.com/trusted/'
    payload = {'username=':'admin'}
    workbookView = 'FirstView/Dashboard1'
    r = requests.post(url, data={'username': 'admin'})
    if r.status_code == 200:
        if r.text != '-1':  
            ticketID = r.text
            print("\n\nThis is ticket:\n\n",ticketID)
        else:  
            print("Tableau Server could not issue trusted ticket")  
            sys.exit()  
    else:  
        print('Could not get trusted ticket with status code',str(r.status_code))

    url = url + ticketID + '/views/' + workbookView
    print("\n\nThis is URL:\n\n",url)  
    
    r = requests.get(url,allow_redirects=False)  
    #print (r.cookies['workgroup_session_id'])
    print ("\n\nThese are cookies\n\n",r.cookies)
    url2 = 'http://ec2-server.compute-1.amazonaws.com' + '/views/' + workbookView  
    r2 = requests.get(url2,cookies=r.cookies)  
    # print('This is r2!')
    # print(r2.text)
    

    return render(request,'dashboard/home.html',{'ticket':ticketID})

Вот что я получаю на своей веб-странице : webs

Я уже добавил свой ip-адрес в список доверенных узлов сервера Tableau. Я не уверен, почему я не могу получить просмотр. Также вот мой HTML код :

<!DOCTYPE html>
<html>
    <head>
        <title>

        </title>
    </head>
    <body>
        <h1>Dashboard Home</h1>
       
            <!-- Embedded way -->
              <!-- <script type='text/javascript' src='http://ec2-server.compute-1.amazonaws.com/javascripts/api/viz_v1.js'></script>
              <div class='tableauPlaceholder' style='width: 1000px; height: 827px;'><object class='tableauViz' width='1000' height='827' style='display:none;'>
                <param name='host_url' value='http%3A%2F%2Fec2-server.compute-1.amazonaws.com%2F' /> 
                <param name='embed_code_version' value='3' /> <param name='site_root' value='' />
                <param name='name' value='FirstView&#47;Dashboard1' /><param name='tabs' value='no' />
                <param name='toolbar' value='yes' /><param name='showAppBanner' value='false' /></object>
              </div> -->

              
              <!-- Iframe -->
            <!-- <iframe width="1335px" height="894px" src="http://ec2-server.compute-1.amazonaws.com/views/FirstView/Dashboard1?:showAppBanner=false&:display_count=n&:showVizHome=n&:origin=viz_share_link">
            </iframe> -->
            <div><h1>THis is the ticket value:</h1>
                <h4>{{ticket}}</h4>
                <h5>"trusted/+{{ticket}}+/views/FirstView/Dashboard1"</h5>
            </div>
            <script type="text/javascript" src="http://ec2-server.amazonaws.com/javascripts/api/viz_v1.js"></script> 
            <object class="tableauViz" width="900" height="700" style="display:none;"> 
                <param name="path" value="trusted/+{{ticket}}+/views/FirstView/Dashboard1" /> 
            </object> 

    </body>
</html>
Вернуться на верх