Google Drive REST API 사용법 질문합니다.

조회수 3141회

구글드라이브의 디렉터리 id를 알고있는 상태에서,

파일이름으로 해당 디렉터리 안에 있는 파일들을 검색하려고합니다.

A라는 디렉터리안에 b라는 파일이 있을때

A디렉터리 id는 0BxzcvS6mFyRFV3N3M1BmVEl3NU0이고, 파일명은 kaka.gif일때

구글 드라이브 API v3 기준으로는

GET https://www.googleapis.com/drive/v3/files?q='0BxzcvS6mFyRFV3N3M1BmVEl3NU0'+in+parents+and+name%3D'kaka.gif'+and+trashed%3Dfalse&key={MY_API_KEY}

위와 같은 방법으로 하면 되지만... name 조건이 들어가면 500error을 발생시키는 증상이 있습니다.

구글 드라이브에서 지원한는 검색 방식을 참고하여

q'0BxzcvS6mFyRFV3N3M1BmVEl3NU0' in parents and name='kaka.gif' and trashed=false을 url endcode하고,

API_KEY같은 경우엔 구글 api 콘솔에서 google drive api를 사용한다고 설정하고 발급받은 api키를 사용하였습니다.

여기서 문제가 q에 꼭 넣어야할 필드 3개(parents, name, trashed)중에서 name 조건을 넣고 rest api를 호출하면 500error이 발생하고, name조건을 넣지 않으면 정상 동작을 합니다.

다시말해

GET https://www.googleapis.com/drive/v3/files?q=%270BxzcvS6mFyRFV3N3M1BmVEl3NU0%27+in+parents+and+name%3D%27kaka.gif%27+and+trashed%3Dfalse&key={key}

위와 같이 name 조건이 들어간 호출은 500error이 발생하고

GET https://www.googleapis.com/drive/v3/files?q=%270BxzcvS6mFyRFV3N3M1BmVEl3NU0%27+in+parents+and+trashed%3Dfalse&key={key}

위와 같이 name이 빠진 상태에선 정상적으로 id가 0BxzcvS6mFyRFV3N3M1BmVEl3NU0인 구글 드라이브 디렉터리 내의 파일들의 정보를 응답해줍니다.

그리고 id가 0BxzcvS6mFyRFV3N3M1BmVEl3NU0인 구글 드라이브 디렉터리는 공유 권한이 링크가 있는 모든 사용자가 볼수있음 이기때문에 따로 인증은 필요 없습니다...

제가 무엇을 빼먹었는지 잘 모르겠습니다.

관련하여 경험이 있으신분들의 답변 기다립니다...

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)