본문 바로가기
개발

20221008_구글 포토 API로 이미지 링크 가져오기

by 이로서로 2022. 10. 9.

flutter에서 google Photo API로 제 구글 포토 계정에 업로드 되어 있는 이미지를 flutter로 가져오고 개발 중인 flutter 앱에 보이도록 해보았습니다. 아래가 작동중인 앱을 캡쳐한 gif입니다. 

중간에 날짜를 바꾸면 위치를 표시하는 위쪽 그래프와 당일날의 사진이 아래 업데이트 됩니다.

아래는 배운점 입니다. 

 

1. 한번의 request로 원하는 정보를 한번에 다받아올 수 없었습니다. 

google API문서에 받아오는 정보량에 대해 특별히 얘기가 없어서 filter를 적용하지 않으면 저장된 이미지를 한번에 다 가져올 거라 예상했지만 그렇지 않았습니다. 

제 계정에 10000개 이상의 이미지가 업로드 되어 있는데 pageSize 100으로 설정해도 한번에 73개의 이미지 밖에 가져오지 않더군요.

nextPageToken을 써도 다음 페이지가 없는 걸로 나왔습니다. 

 

다만 datefilter를 쓰면 해당 date의 이미지를 다 가져올 수 있는 것처럼 보였습니다. 그래서 한번에 이미지를 다 가져와서 가지고 있다가 보여주는 방식이 아니라 날짜를 선택했을 때 해당 날짜의 이미지만 가져와서 보여주는 방식으로 만들었습니다.

이미지에 대한 링크는 저장해두었다가 사용해서 request-response에 걸리는 시간을 줄일 수 있을 것 같은데 나중에 해보려 합니다.


var request = {};
request['pageSize'] = 100;
request['filters'] = {"dateFilter" : {'dates':{'year' : year, 'month' : month, 'day' : day}}};

var request_json = json.encode(request);

final response = await http.post(
  Uri.parse("https://photoslibrary.googleapis.com/v1/mediaItems:search"),
  body: request_json,
  headers: await googleAccountManager.currentUser!.authHeaders,
);

print("page token : ${jsonDecode(response.body)['nextPageToken']}");

 2. 이것저것 구현하다보니 코드가 잡다해지고 있습니다. 흑흑..

 

'개발' 카테고리의 다른 글

20221021_flutter animation 만들기  (0) 2022.10.21
20221018_개발 진행 상황  (0) 2022.10.18
20221003_구글 포토에서 이미지 가져오기  (0) 2022.10.03
20220917-일한 시간 분석 개선  (0) 2022.09.27
하고 싶은 일  (0) 2022.09.25

댓글