반응형

안드로이드앱에서 사진 검색해서 다운로드 받을 수 있는 웹서비스를 찾다가 Flickr을 사용해보았습니다.

앞으로 4개의 포스팅을 통해 flickr API를 사용하여 안드로이드 앱에서 사진 검색을 구현한 과정을 다룹니다.



  • Flickr API 사용 해보기

http://webnautes.tistory.com/459


  • Android에서 REST 요청 후 JSON 응답 받기

http://webnautes.tistory.com/462


  • Android에서 JSON 파싱하여 ListView에 출력

http://webnautes.tistory.com/471


  • ListView 아이템 클릭하면 이미지 다운로드해서 보여주기

http://webnautes.tistory.com/472




flickr API( https://www.flickr.com/services/api/ )에서는 세가지 요청 형식을 제공하는데 REST, XML-RPC, SOAP입니다.


이중 제일 간단해 보이는 REST 요청을 사용하기로 했습니다.

웹브라우저의 주소창에 요청 주소를 입력해주면 결과값을 바로 확인해볼 수 있습니다.


최초 작성        - 2014.06.29

최종 업데이트 - 2017.12.21





1. Flickr API KEY 발급받기


2. REST 요청 테스트


3. JSON 포맷 구조





1. Flickr API KEY 발급받기

1. Flickr API를 사용하기 위해서는 야후 계정이 있어야 합니다.

https://www.flickr.com/services/apps/create/apply 에 접속하여 로그인 합니다.

계정이 없으면 가입을 해서 진행해야 합니다.  




2. 테스트 해보기 위해서 필요하므로 비상업용 키 신청을 선택했습니다.





3. App 이름과 App에 대한 설명을 적어 준 후, 아래쪽에 두 개 있는 체크박스를 모두 체크 후 등록을 클릭합니다.





4. 발급받은 API 키를 복사해둡니다.





2. REST 요청 테스트

다음 REST 요청 주소를 웹브라우저의 주소창에 입력하여 접속해봅니다.

  • Flickr_API_KEY 부분은  발급받은 API 키로 대체합니다.

  • text 다음에 입력한 cat을 검색하게 됩니다.

  • 응답 포맷으로(format) json을 지정했습니다.


https://secure.flickr.com/services/rest/?method=flickr.photos.search&api_key=Flickr_API_KEY&text='cat'&safe_search=1&content_type=1&sort=interestingness-desc&per_page=5&format=json




웹페이지에 JSON 응답이 출력됩니다.




3. JSON 포맷 구조


JSON 포맷으로 받은 응답으로부터 원하는 정보들을 파싱하려면 JSONArray와 JSONObject를 구별할 줄 알아야합니다.  

괄호 모양의 차이에 유의하여 다음 4가지 중 어떤 것인지  파악하며 원하는 정보를 끄집어 내면됩니다.


JSONArray

[ “apple”, “orange”, “banana”,”status”],

여러 개의 아이템을 하나로 구성 시 사용

JSONObject

{"name": "apple", "color":"red", weight:”500”}

하나의 아이템에 대한 속성들을 기술 시 사용


JSONArray + JSONObject

{“total”:”3”, “fruit”:[{"name": "apple", "color":"red", weight:”200”}, {"name": “orange", “color":"orange", weight:”130”},{"name": "”:”banana", "color":"yellow", weight:”500”}], “status”:”ok”}

JSONObject 내부에

JSONArray 사용

[{"name": "apple", "color":"red", weight:”200”}, {"name": “orange", “color":"orange", weight:”130”},{"name": "”:”banana", "color":"yellow", weight:”500”}]

JSONArray 내부에

JSONObject 사용



전체 JSON 응답을 보고 JSONArray와 JSONObject 부분을 구분할 줄 알면 파싱하는 것은 쉽습니다.

프로그래밍적으로 파싱하는 방법은 이후 포스팅에서 다루도록 하겠습니다.




반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts