2016-06-30 2 views
3

을 다운로드 할 수 없습니다 (원시 파일 내용 대신).Podio 파일은 내가 Podio 항목에 첨부 된 파일을 다운로드하려고 문제가있는

세부 사항은 : 위의 코드는 적절한 인증 후 실행

  • 에 로그인 할 때

    • 위의 파일은 해당 URL에 액세스 할 수의 이미지 필드에서 file_id를 사용하는 경우 그것은 실제로 작동
    • 항목,하지만 첨부 파일 (내 경우에는 PDF 파일)에서.
    • API 끝점 /item/app/{app_id}/filter을 사용하여 항목 목록을 가져 오는 경우 file_count 속성은 설정되지만 files은 설정되지 않습니다. 응답에 포함 된 files 속성을 얻으려면 개별적으로 /item/{item_id}을 요청해야합니다. 그 이유는 확실하지 않습니다.

    질문 : 문제가 무엇인지, 그리고 원본 첨부 파일을 어떻게 다운로드 할 수 있는지 알고 있습니까?

    편집 : aditionnal 정보

    나는 folowing 명령을 사용하여 하나의 파일 메타 데이터를 요청하는 경우 :

    podio.request('get', '/file/1234').then(console.log); 
    
    나는 많은 분야를 포함하는 파일 JSON 개체를 가져

    하지만 하지 파일 내용을 :

    { 
        ... 
        link: 'https://files.podio.com/1234', 
        file_id: 1234, 
        ... 
    } 
    

    @stengaard에 대한 내 의견에 명시된 바와 같이

    { [PodioNotFoundError: [object Object]] 
        message: 
        { error_parameters: {}, 
        error_detail: null, 
        error_propagate: false, 
        request: 
         { url: 'http://api.podio.com/1234', 
         query_string: '', 
         method: 'GET' }, 
        error_description: 'No matching operation could be found. The path \'/1234\' was not found..', 
        error: 'not_found' }, 
        status: 404, 
        url: 'https://api.podio.com:443/1234', 
        name: 'PodioNotFoundError' } 
    
  • 답변

    4

    는 높은 신뢰 수준을 가진 API 키를 필요로하는 GET /file/{file_id}/raw 엔드 포인트를 사용하려면 : 위의 링크, 여기에 응답이다.

    대신 GET /file/{file_id} 끝점을 사용하십시오. 여기에는 파일 내용을 얻기 위해 따라야하는 link 속성 (URL)이 포함되어 있습니다.

    link 속성은 다음과 같습니다 : https://files.podio.com/{file_id}. 파일을 가져 오려면 https://files.podio.com/{file_id}?oauth_token={oauth_token}을 실행하십시오. OAuth 토큰이 GET /file/{file_id}에 사용 된 것과 같습니다. 파일 ID를 알고 있다면 (예 : GET /item/{item_id}) GET /file/{file_id}을 건너 뛰고 files.podio.com으로 직접 문의 할 수 있습니다 (참고 : URL 매개 변수에 인증 토큰을 전달하는 것이 마음에 들지 않으면 HTTP 요청에 Authorization: OAuth2 {oauth_token} 헤더를 설정할 수도 있습니다.당신이 당신의 Podio의 API 개체로 podio를 사용하는 경우)

    사용하는 방법에 대한 예를 들어

    그것의 JS 클라이언트에서 일반적으로 https://github.com/podio/podio-js/blob/master/lib/general.js#L11

    를 참조하여 OAuth 토큰은이 위치에 있습니다

    podio.authObject.accessToken 
    

    따라서 노드에있는 파일의 원시 내용을 얻으려면 :

    var url = 'https://files.podio.com/'+file_id+'?oauth_token='+podio.authObject.accessToken; 
    request(url, function (err, fileContent) { 
        // use fileContent here, write to a file, etc... 
    }); 
    
    +0

    이것은 작동하지 않습니다. 프로그램에서 링크를 호출 할 수 없으며 인증을 위해 사람과 상호 작용해야합니다. 프로그래밍 방식으로 파일을 다운로드하는 방법이 필요합니다. 따라서 API를 사용하십시오. 내 질문에 명시된 바와 같이,'/ file/{fileId}/raw'는 이미지 필드 (파일이기도하지만 파일에 첨부 된 파일이 아님)에서 작동합니다. – Pandaiolo

    +0

    API를 통해'link'를 요청할 때 JSON 응답에 대한 업데이트 된 답변보기 – Pandaiolo

    +0

    죄송합니다 - 'oauth_token'을 매개 변수로 제공해야합니다. 내 대답을 업데이트 할게. –

    0

    요청하신 내용에 오류가있는 것 같습니다. 아래의 방법을 시도해보고 응답에서 원시 파일 콘텐츠를 가져 오십시오.

    podio.request('get', '/file/{file_id}').then(console.log); 
    

    참고, 우리는 항목을 필터링하여 파일을 가져올 수 없습니다. 우리는 당신이 말한대로 파일 속성을 얻기 위해 /item/{item_id}을 개별적으로 요청해야합니다.

    +0

    안녕하세요 @ Mûhámmàd, 당신의 대답에 감사드립니다. 작동하지 않습니다. 이유를 보여주기 위해 내 대답을 업데이트했습니다. (당신이 제안한 요청은 실제 파일 내용이 아닌 파일 메타 데이터를 얻습니다) – Pandaiolo

    관련 문제