Google Photos Plugin
Dev

Google Photos Plugin

2017. 11. 3. 17:23

Dropbox의 등장 이후로 사진을 찍으면 PC에서도 바로 그 사진을 볼 수 있고 다른 기계를 사용해도 마찬가지로 사진을 볼 수 있는 것이 당연하게 되었다. Dropbox가 촬영한 사진을 모든 기계에 동기화해주기 때문이었다. (이것은 안드로이드에서고 아이폰은 아이클라우드에서 이렇게 된다)

이렇게 좋은 Dropbox에도 단점이 있다. 고작 5GB밖에 무료로 제공하지 않는다는 거다. 한달에 만원정도 지불하면 무제한 용량을 사용할 수 있기는 한데 한번 쓰기시작하면 멈추기 쉽지 않기때문에 망설여진다.

구글도 구글 드라이브라는 것으로 이 시장에 진출을 했는데 한발 더 나갔다. Photos라는 어마무시한 서비스를 출시한거다. 피카사의 뒤를 잇는 제품인데 구글 드라이브와 연동이 되는데다가 용량이 무제한이다. 물론 무제한 플랜에서는 이미지가 변형되긴하지만 그게 어딘가. 이제 나의 사진관리는 Photos가 모두 담당하게 되었다.

Photos에도 단점이 있기는 하다. 동기화된 사진을 사용하기가 번거롭다는 거다. pc에 다운로드 되는 것이 아니고 웹에서 관리되다보니 다른 곳에 사용하려면 다운로드받은 후에 다시 업로드하거나 Photos 그 자체를 공유해야한다. 티스토리에 사진을 넣기 위해서도 다운로드 후 업로드해야한다. 이런 번거로움 때문에 Photos Plugin이 시작되었다.

Picasa Web Albums Data API

Picasa Web Albums Data API는 예전에 구글이 Picasa를 서비스할때 사용할 수 있던 API이다. 서비스가 Photos로 바뀐 뒤에도 API는 바뀌지 않았는데 그래서 그런지 응답 type이 XML뿐이다. ;;

API를 사용하기 위해선 먼저 구글 OAuth2를 통해 access token을 받아야 한다. 이 때 Picasa의 scope을 사용해야 하는데 그 값은 https://picasaweb.google.com/data/다. 자세한 내용은 영어지만 문서에 자세히 정리되어 있다.

API에서 userID를 사용해야 하는데 이를 위해서 구글 userinfo를 또 가져와야하느냐? 그렇지 않다. default라는 값을 사용하면 현재 로그인한 사용자의 userID를 대신할 수 있다.

UI 구성

사진을 가져와서 본문에 넣기만 할 것이기 때문에 UI도 단순하고, 사용하는 API도 simple하다.

먼저 인증 화면이다. request를 날렸을때 200 응답이 오지 않는다면 인증에 문제가 생겼다고 판단하고 인증화면을 보여준다. 물론 access token이 없을때도 이 화면이 나온다.

티스토리 인증에서 사용했던 electron-oauth2를 사용하였기 때문에 거의 비슷하다. 새로운 window가 떠서 인증을 마치면 window는 닫히고 access token을 가져온다.

인증을 정상적으로 완료하면 album API를 호출해서 album 리스트를 보여준다. feed/entry가 album 데이터이고 title, summary로 아래 텍스트를 media:group/media:thumbnail로 썸네일을 보여준다.

리스트 첫번째에 Auto Backup이라는 앨범이 보일텐데 이것이 폰에서 찍은 사진이 자동으로 업로드 되는 곳이다. 바로 이 곳의 사진리스트부터 보여줄까도 생각했지만 앨범을 잘 관리하는 사람이 있을 수도 있으니 일단 앨범 리스트를 보여줘본다.

앨범을 선택하면 사진 API를 호출해서 사진 리스트를 보여준다. feed/entry가 album 데이터이고 title, summary로 아래 텍스트를 content로 썸네일을 보여준다.

Photos에는 동영상도 업로드되는데 동영상은 본문에 넣기가 곤란하다. 그래서 동영상만 빼고 보여주고 싶다. gphoto:videostatus라는 것은 동영상에만 존재하니 이 값이 있으면 뺐다. 사진을 선택했을때는 content값을 본문에 넣는다. 아쉽게도 굉장히 저용량 사진이다. 그래도 그럭저럭 보기에는 충분하다.


이렇게 Google Photos에 업로드한 사진을 본문에 넣는 플러그인이 만들어졌다. 하는 김에 Markdown 에디터에 툴바도 넣어봤다.

이렇게 하고 싶은 것을 그럭저럭 끝냈으니 미루고 미룬 여행 기록이나 정리해봐야겠다. :)

반응형