DDu*_*ffy 9 c# tableau-api tableau-server
我正在通过C#使用Tableau REST API来尝试获取用户收藏夹列表.我知道用户有一些,因为它是我的.我尝试过使用API版本2.8,3.0,3.1和3.2几乎没有任何乐趣.2.8和3.0响应:
<?xml version='1.0' encoding='UTF-8'?>
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.8.xsd"> //3.0.xsd when using API Version 3.0
<favorites/> //There should be a plethora of favorites of all varieties in here.
</tsResponse>
Run Code Online (Sandbox Code Playgroud)
3.1和3.2给我一个(404)未找到.
我在c#中的代码是:
public static string QueryFavourites(string APIVersion, string AuthToken, string SiteID, string UserID)
{
string result = "";
try
{
string url = $@"{Server}/api/{APIVersion}/sites/{SiteID}/favorites/{UserID}";
// Create the web request
WebRequest request = WebRequest.Create(url) as WebRequest;
request.PreAuthenticate = true;
request.Headers.Add($"x-tableau-auth: {AuthToken}");
// Get response
using (WebResponse response = request.GetResponse())
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
// Read the whole contents and return as a string
result = reader.ReadToEnd();
}
return result;
}
catch(Exception E)
{
logger.Error("Error! System Says: " + E.Message);
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道该方法有效,因为它用于多个其他API调用,每个调用使用不同的URL(取决于调用).有没有人知道它是在tableau端还是在我结束时的问题?显然它应该与我们拥有的Tableau Server 2.8或更高版本一起使用.(我想我们正在运行2018.1)
有人能够使用tableau REST API获取用户的收藏列表吗?我哪里错了?
(我也在Tableau论坛上发布了这个问题.)
更新:
我在下面的屏幕截图中包含了请求的CURL和Headers以及结果.(我使用'Restlet Client'比'Postman'更多,因此截图来自前者.)ID和身份验证令牌已被删除,因为它们是敏感信息,我认为我的公司不会满意我把它们放在公众面临互联网.所有ID和身份验证密钥都在正确的情况下并正确显示.它们在其他几个API调用中成功使用,并通过API直接从Tableau中提取.
我发现的例外情况是无法找到我正在调用的API版本.所以v2.6 - v2.8和v3.0都是"工作".其他版本返回404001 VERSION_NOT_FOUND错误.
我将采取的方法是:
在站点上查询用户.(拥有收藏夹的用户)
检查用户是否确实:您认证的用户是; 和你要查询收藏夹的同一个用户
如果它们相同,请尝试使用REST API(DataSource,View或Workbook)添加收藏夹
获取用户的收藏夹,您添加的数据源/视图/工作簿应该在那里.
如果要更新用户,将用户添加到站点或将用户添加到组,我已添加指向文档的链接
您可以使用您选择的Postman /工具完成这些操作.
您还可以尝试确保查询其他用户(或相同)的用户是服务器管理员(只是为了安全),并确保您是另一个(或相同)用户的同一站点的成员.
希望这可以帮助!
编辑:也许您可以尝试添加具有常规组的新用户到站点,确保您也是该站点的成员.然后添加一个收藏夹并获得常规组用户的收藏夹.如果这不起作用,你可以验证除了管理员之外,是否也不可能为团体用户提供收藏.
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |