对于我们使用Tableau的新报告工具,我们希望用户只需登录我们的网站即可查看信息。
在Tableau的服务器端,一切似乎都设置正确,但我似乎无法从我的网站上的Tableau获取任何数据。可悲的是,我也没有收到任何错误。我没有后端专家,我知道一些基本的PHP,所以我可能会忽略这里的一些东西。任何帮助都会得到帮助!
重要的是要注意我们的网站是SSL安全的,我不知道这对此有多大影响。
所以这是我在用户成功登录系统后加载的内容:
$server = "our server ip";
$view_url = "tableau view url";
$user = 'admin';
function get_trusted_url($user,$server,$view_url) {
$params = ':embed=yes&:toolbar=yes';
$ticket = get_trusted_ticket($server, $user, $_SERVER['REMOTE_ADDR']);
if (strcmp($ticket, "-1") != 0) {
return "http://$server/trusted/$ticket/$view_url?$params";
}
else
return 0;
}
function get_trusted_ticket($wgserver, $user, $remote_addr) {
$params = array(
'username' => $user,
'client_ip' => $remote_addr
);
return do_post_request("https://$wgserver/trusted", $params);
}
function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data)
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
这是我尝试显示数据的地方:
<script type="text/javascript" src="http://IP/javascripts/api/viz_v1.js"></script>
<object class="tableauViz" width="1519" height="693" style="display:none;">
<param name="path" value="<?php echo get_trusted_url($user,$server,$view_url)?>" />
</object>
答案 0 :(得分:0)
受信任的身份验证涉及从Tableau Server请求票证,然后兑换该票证。对任何正在发生的问题进行故障排除因此归结为确定该进程的哪个部分失败,然后解决问题。
作为第一步,我建议您浏览Troubleshoot Trusted Authentication页面。
也就是说,我注意到用于显示数据的脚本正在将viz_v1.js
文件提取到http
而不是https
。那是一个错字吗?