我正在开发一个持续的API项目。当前的问题是能够从AtTask服务器上下载我们在AtTask服务器上存在的文件夹结构中的数据。我的文件夹创建效果很好;文档,文档文件夹和文档版本之间的数据类型似乎非常清楚。我对扩展不在文档对象中的事实感到有些失望(我必须参考文档VERSION)...但我可以从设计的角度看到一些原因。
我现在遇到的问题是我需要获取文件内容。我最初通过API文档得到的文件内容与文档建议上传文件的内容相同 - 通过句柄。不幸的是,除了编写新文件外,文档和docv似乎都不支持我访问句柄。
这样就留下了“下载URL”作为剩余选项。如果我使用浏览器从API调用构建UI字符串,我会得到一个带https://attaskURL/document/download?ID=xxxx
的URL(并且还可以获取versionID等)。如果我将网址粘贴到我登录到AtTask用户界面的浏览器中,它可以正常工作,我可以下载该文件。相反,如果我使用我的C#代码这样做,我会将登录页面作为流返回而不是我的实际文件,因为我没有验证。我尝试使用用户名和密码创建网络凭据并将其附加到请求中,但无济于事。
我想有几种方法可以解决这个问题 - 很容易找到一种方法通过代码“登录”到下载站点(这似乎不是C#中通常的网络凭证对象)或者找到一种通过API访问文件内容的方法。
欣赏你的想法!
答案 0 :(得分:4)
如果您在网址中添加会话ID,您似乎可以使用下载网址。获取会话ID的详细信息在这里(基本上只是调用login,会话ID以JSON格式返回):
http://developers.attask.com/api-docs/#Authentication
然后在文档下载URL的末尾填写:
https://yourcompany.attask-ondemand.com/document/download?ID=xxxx&sessionID=abc1234
我已经给了这个快速测试,我可以访问文档。
答案 1 :(得分:0)
如果您没有使用SAML身份验证,则可以使用downloadURL和sessionID。
我已经尝试过两种方式,使用SAML会将您重定向到登录页面。