구글 캘린더 연동하기
나는 에어데스크라는 확장 프로그램을 만들고 있다. 브라우저에 대시보드를 만들어주는 편리한 애플리케이션이다. 그 중에서 핵심인 캘린더 기능을 발전시키고자 하는데, 이것이 사용자들이 가장 필요로 하는 기능이기 때문이다.
구글 캘린더 정복은 쉬운 일이 아니었다.
글 제목은 1일차라고 적었지만, 실제론 200일 이상의 전투를 이미 지나왔다.
군복무 중에도 수차례 시도했으나 API 문서에 접속하는 것 자체가 너무 느리고, 아예 접속이 안 되는 환경이라 진행이 제자리 걸음일 수 밖에 없었다. 그러나 캘린더를 쓰고, 편집하기 위해선 API를 사용해야하는데, 이걸 잊기보다는 도리어 적어가면서 이 문제를 정면돌파 해보고자 한다.
1일차
첫번째 시도
공식 가이드 북을 따라서 진행해보았다. 먼저 Browser 소스 코드다.
이 코드는 HTML과 자바스크립트로 구성되어있기에 가장 쉽게 이해할 수 있었다.
그러나 문제는 확장 프로그램에서 작동하지 않는다는 점이다.
대강의 순서는 이렇다.
1. OAuth 클라이언트 아이디를 만들고, API Key를 만들어서 client_secret.json 파일로 다운받는다.
2. index.html파일의 ID와 Key부분만 수정해서 같은 폴더에 위치시킨다.
3. 파이썬 명령으로 실행시킨다.
그런데 확장 프로그램에선 파이썬 명령으로 실행시킬 수 없이 클라이언트 코드자체로 구동되어야 하기 때문에 안의 자바스크립트 코드만따서 진행해보았다.
첫번째 에러가 발생했는데 확장 프로그램은 보안상의 이유로 인라인 스크립트를 막고있다. 인라인 스크립트라함은 HTML에 자바스크립트 코드를 직접 쓰는걸 뜻한다. 해결책은 js파일로 만들어서 참조하면된다. 어렵지 않기에 참조해보았으나 새로운 문제가 발생한다.
참조 코드 중에선 구글 API를 요청하는 코드가 있다. 이러한 외부 링크로 인한 참조 문제를 해결하기 위해선 두가지 방법 중 하나면 보통 해결된다. 매니페스트 파일에 퍼미션을 추가해주거나, content security policy에 인라인 형태로 주소를 추가해주는 방법이다. 구글 API 같은 라이브러리를 가져올 때는 content security policy에 추가하면 에러가 해결된다.
에러는 잡았으나 새로운 문제를 발견했다. 바로 srcript 태그 안의 인라인 코드이다.
More from Howdy의 블로그
See all posts특별한 법칙은 아니지만 자주 생각하려는 법칙이 있다. 향기의 법칙이라고 명명한 이 법칙은 무척이나 간단하다. 어떠한 상황에서든 상대를 유혹하라는 것이다. 원하는 것이 있다면 상대방이 원하도록 유혹하는 것이다. 이는 아주 간단한 원칙인데 동시에 매우 달성하기 어려운 법칙이기도 하다. 향…
향기의 법칙
하루가 멀다하고 사고가 터지는 것이 인간사. 인간이 만든 것 중 무엇이 대단하다 말할 수 있을까. 무엇이 완전하다 말할 수 있을까. 무엇이 영원하다 말할 수 있을까. 영원한 것은 단 하나도 없고 먼지가 쌓이지 않는 것도 단 하나도 없다. 기회 역시 영원하지 않아서 영원할 것 같은 젊음…
영원하지 않다
이카루스는 태양에 가까이 가면 안된다는 것을 알았으나 높게 날았다. 깃을 붙인 밀납이 녹아 깃이 떨어져 나가고 나서야 그는 자신의 미래를 보았다. 자유로 향하는 날개를 얻었을 때 태양을 향해서도 바다를 향해서도 안됐다. 고도를 유지하며, 섬세하게 바람을 타지 않는다면 어디로든 날아갈…
자유의 날개
인간이 보편적으로 누리는 권리는 대부분 거래를 통해 획득했다. 참정권은 군복무, 참전으로 얻었고, 링컨의 노예제 해방을 위해선 산업화된 사회에서의 흑인 인권이 필요했다. 반면 노예를 사용하는 것이 경제적 이득이 되는 남부군의 입장에서는 당시 기준으로 재산권 침해에 해당한다고 보았기에…
Comments