2014-02-26 4 views
0

저는 계속 진행중인 API 프로젝트를 진행하고 있습니다. 현재 당면한 문제는 AtTask 서버에있는 폴더 구조와 정확히 일치하는 AtTask 서버에서 내 데이터를 다운로드 할 수 있다는 것입니다. 나는 폴더 생성이 멋지게 작동하도록했습니다. 문서, 문서 폴더 및 문서 버전 사이의 데이터 유형이 꽤 명확하게 보입니다. 나는 확장이 문서 객체에 없다는 사실에 대해 조금 실망하고있다. (나는 그 문서 VERSION을 참조해야한다.) 그러나 나는 디자인 관점에서 그 이유 중 일부를 볼 수있다.AtTask에서 문서를 다운로드하려면 어떻게해야합니까?

내가 지금 실행중인 문제는 파일 콘텐츠를 가져와야한다는 것입니다. 원래 API 문서를 통해 문서의 내용을 업로드 할 것을 권장하는 것과 같은 방법으로 파일 내용을 가져올 수 있습니다. 불행하게도, 문서도 docv도 새로운 파일을 쓰는 것을 제외하고는 핸들에 접근하는 것을 지원하지 않는다.

나머지 옵션으로 "다운로드 URL"을 남겨 둡니다. 브라우저를 사용하여 API 호출에서 UI 문자열을 작성하면 https://attaskURL/document/download?ID=xxxx의 URL을 얻을 수 있습니다 (또한 versionID 등을 얻을 수도 있습니다). AtTask의 사용자 인터페이스에 로그인 한 브라우저에 URL을 붙여 넣으면 제대로 작동하고 파일을 다운로드 할 수 있습니다. 대신 C# 코드를 사용하면 로그인 페이지가 실제 파일 대신 다운로드 할 스트림으로 반환됩니다. 왜냐하면 내가 인증하지 않았기 때문입니다. 나는 네트워크 신임장을 작성하고 사용자 이름과 비밀번호로 요청에 첨부하려고 시도했지만 아무 소용이 없습니다.

이 문제를 해결하는 몇 가지 방법이 있다고 상상해보십시오. 쉬운 방법은 코드를 통해 다운로드 사이트에 "로그인"하는 방법을 찾는 것입니다 (C#에서는 일반적인 네트워크 자격 증명 개체가 아닌 것 같습니다) 또는 API를 통해 파일 내용에 액세스하는 방법을 찾으십시오.

감사합니다.

답변

2

URL에 세션 ID를 넣으면 다운로드 URL을 사용할 수있는 것처럼 보입니다. 세션 ID를 얻기에 대한 세부 사항은 (기본적으로 그냥 로그인 전화 세션 ID가 JSON 반환됩니다) 위치 :

https://yourcompany.attask-ondemand.com/document/download?ID=xxxx&sessionID=abc1234 :

http://developers.attask.com/api-docs/#Authentication

그런 다음 문서 다운로드 URL의 끝에 그것을 벼락 공부

빠른 테스트를 통해 문서에 액세스 할 수 있습니다.

+0

그건 트릭입니다. 다운로드 URL은 기존 세션으로 태그를 지정하지 않았을 때 로그인 페이지로 리디렉션되었습니다. 응답 코드가 Fiddler를 통해 다르므로 다른 로그인 관리 시스템이라고 가정했지만, 귀하는 절대적으로 옳고 불필요한 로그인 전화를 절약 할 수있었습니다. :) – joefox97

+0

나는 sessionID를 사용하려했지만 내 경우에는 작동하지 않았다. 로그인 페이지로 아직 리디렉션 중입니다. 어떤 아이디어가 여기에 문제가 될 수 있습니까? –

0

SAML 인증을 사용하지 않는 경우 downloadURL과 sessionID를 사용할 수 있습니다.

두 가지 방법을 시도했으며 SAML을 사용하면 로그인 페이지로 리디렉션됩니다.