Inbox 알림 알림 내보내기
지금까지 매일 신세를 지고 왔습니다만, 향후 업데이트되지 않으면 Gmail로 이행할 수밖에 없을까라고 생각하고 있습니다.
Inbox에는 몇 가지 고유한 기능이 있으며 그 중 알림(Google Reminders)은 후속 서비스인 Google ToDo로 데이터가 이전되지 않습니다.
내보내려고 해도, API도 준비되어 있지 않기 때문에 곤란해 버렸습니다. .
여러가지 시도한 결과, Google Calendar의 통신을 해석해, Google의 클로즈드 API를 사용하는 것으로 데이터의 export가 가능했으므로 방법을 정리합니다.
포인트
htps : // 사마귀 x. 오, ぇ. 코m/이 사용하는 API의 끝점은
https://inbox.google.com/sync/u/0/i/bv
와 같은 독특한 형식이므로 오픈 API에 가까운 형식의 Google Calendar API를 사용합니다.Google Calendar에서 사용하는 Closed API
Google 캘린더를 열고 '내 캘린더'의 '알림'을 선택하면 먼저 알림을 표시합니다.
Chrome 개발자 도구의 '네트워크' 탭을 열면 많은 통신이 이루어지므로 검색 폭스에 'reminders/list'를 입력하면 해당 통신을 찾을 수 있습니다.
list?key=XXX
와 같은 이름의 통신을 찾아 마우스 오른쪽 버튼으로 클릭하고 "Copy", "Copy as cURL"및 메뉴를 클릭하여 cURL에 대한 명령을 복사 할 수 있습니다.
여기에는 쿠키 등 자격 증명도 포함되어 있으므로 그대로 붙여 넣으면 CLI로 인증에 시달리지 않습니다.
다음과 유사한 명령이 복사되어야 합니다(사용자별 다른 값은 XXX
로 대체됨).
curl 'https://reminders-pa.clients6.google.com/v1internalOP/reminders/list?key=XXX' \
-H 'cookie: SID=XXX; HSID=XXX; SSID=XXX; APISID=XXX; SAPISID=XXX; NID=XXX; 1P_JAR=XXX; SIDCC=XXX' \
-H 'origin: https://reminders-pa.clients6.google.com' \
-H 'accept-encoding: gzip, deflate, br' \
-H 'x-origin: https://calendar.google.com' \
-H 'accept-language: XXX' \
-H 'authorization: SAPISIDHASH XXX' \
-H 'x-requested-with: XMLHttpRequest' \
-H 'x-client-data: XXX' \
-H 'x-goog-authuser: XXX' \
-H 'pragma: no-cache' \
-H 'x-clientdetails: appVersion=XXX&platform=XXX&userAgent=XXX' \
-H 'x-goog-encode-response-if-executable: base64' \
-H 'user-agent: XXX' \
-H 'content-type: application/json+protobuf' \
-H 'accept: */*' \
-H 'cache-control: no-cache' \
-H 'authority: reminders-pa.clients6.google.com' \
-H 'referer: https://reminders-pa.clients6.google.com/static/proxy.html?usegapi=XXX&jsh=XXX' \
-H 'x-javascript-user-agent: google-api-javascript-client/1.1.0' \
-H 'x-referer: https://calendar.google.com' \
--data-binary '{"1":{"4":"WRP / /WebCalendar/calendar_180906.14_p2"},"2":[{"1":3},{"1":16},{"1":1},{"1":8},{"1":11},{"1":5},{"1":6},{"1":13},{"1":4},{"1":12},{"1":7},{"1":17}],"5":0,"6":100,"16":"XXX"}' \
--compressed
요청 내용은 --data-binary
의 JSON에 설명되어 있습니다.
요청 내용 세부정보
요청의 JSON을 형성하고 살펴 보겠습니다.
{
"1": {
"4": "WRP / /WebCalendar/calendar_180906.14_p2"
},
"2": [
{
"1": 3
},
{
"1": 16
},
{
"1": 1
},
{
"1": 8
},
{
"1": 11
},
{
"1": 5
},
{
"1": 6
},
{
"1": 13
},
{
"1": 4
},
{
"1": 12
},
{
"1": 7
},
{
"1": 17
}
],
"5": 0,
"6": 100,
"16": "1514732400000"
}
숫자로 표기되어 있기 때문에 의미 불명입니다만, 추측하면서 검증해 본 결과, 이하와 같은 의미였습니다.
14, 24, 25는 알림 상태가 완료된 경우에 사용합니다.
덧붙여서, 이러한 숫자로 표기되고 있는 것은 Protocol Buffer로 구현된 API이기 때문이라고 예상됩니다.
의미
필수
기본
1
요청 소스 정보
거짓
2
검색할 데이터
거짓
5
알림 상태(0: 미완료만/1: 완료 포함)
거짓
0
6
취득 최대 건수
거짓
100
14
알 수 없음
거짓
16
범위 지정(종료일시)
거짓
모두
24
범위 지정(종료일시)
거짓
모두
25
범위 지정(시작일시)
거짓
모두
실제 요청
실제 요청으로 추천은 다음과 같은 형태입니다.
생략한 부분은 브라우저에서 복사한 상태를 사용하십시오.
curl --data-binary '{"5": 1, "6": 10000}' \
> reminders.json
덤
내보낸 데이터를 jq
등으로 성형하면 필요한 데이터만 꺼낼 수 있어 편리합니다.
예를 들어, 알림 내용만 추출하려면 다음과 같이 합니다.
cat reminders.json | jq '.["1"][]["3"]'
Reference
이 문제에 관하여(Inbox 알림 알림 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/futa/items/c7a04c7b0be35508a626
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
curl 'https://reminders-pa.clients6.google.com/v1internalOP/reminders/list?key=XXX' \
-H 'cookie: SID=XXX; HSID=XXX; SSID=XXX; APISID=XXX; SAPISID=XXX; NID=XXX; 1P_JAR=XXX; SIDCC=XXX' \
-H 'origin: https://reminders-pa.clients6.google.com' \
-H 'accept-encoding: gzip, deflate, br' \
-H 'x-origin: https://calendar.google.com' \
-H 'accept-language: XXX' \
-H 'authorization: SAPISIDHASH XXX' \
-H 'x-requested-with: XMLHttpRequest' \
-H 'x-client-data: XXX' \
-H 'x-goog-authuser: XXX' \
-H 'pragma: no-cache' \
-H 'x-clientdetails: appVersion=XXX&platform=XXX&userAgent=XXX' \
-H 'x-goog-encode-response-if-executable: base64' \
-H 'user-agent: XXX' \
-H 'content-type: application/json+protobuf' \
-H 'accept: */*' \
-H 'cache-control: no-cache' \
-H 'authority: reminders-pa.clients6.google.com' \
-H 'referer: https://reminders-pa.clients6.google.com/static/proxy.html?usegapi=XXX&jsh=XXX' \
-H 'x-javascript-user-agent: google-api-javascript-client/1.1.0' \
-H 'x-referer: https://calendar.google.com' \
--data-binary '{"1":{"4":"WRP / /WebCalendar/calendar_180906.14_p2"},"2":[{"1":3},{"1":16},{"1":1},{"1":8},{"1":11},{"1":5},{"1":6},{"1":13},{"1":4},{"1":12},{"1":7},{"1":17}],"5":0,"6":100,"16":"XXX"}' \
--compressed
요청의 JSON을 형성하고 살펴 보겠습니다.
{
"1": {
"4": "WRP / /WebCalendar/calendar_180906.14_p2"
},
"2": [
{
"1": 3
},
{
"1": 16
},
{
"1": 1
},
{
"1": 8
},
{
"1": 11
},
{
"1": 5
},
{
"1": 6
},
{
"1": 13
},
{
"1": 4
},
{
"1": 12
},
{
"1": 7
},
{
"1": 17
}
],
"5": 0,
"6": 100,
"16": "1514732400000"
}
숫자로 표기되어 있기 때문에 의미 불명입니다만, 추측하면서 검증해 본 결과, 이하와 같은 의미였습니다.
14, 24, 25는 알림 상태가 완료된 경우에 사용합니다.
덧붙여서, 이러한 숫자로 표기되고 있는 것은 Protocol Buffer로 구현된 API이기 때문이라고 예상됩니다.
의미
필수
기본
1
요청 소스 정보
거짓
2
검색할 데이터
거짓
5
알림 상태(0: 미완료만/1: 완료 포함)
거짓
0
6
취득 최대 건수
거짓
100
14
알 수 없음
거짓
16
범위 지정(종료일시)
거짓
모두
24
범위 지정(종료일시)
거짓
모두
25
범위 지정(시작일시)
거짓
모두
실제 요청
실제 요청으로 추천은 다음과 같은 형태입니다.
생략한 부분은 브라우저에서 복사한 상태를 사용하십시오.
curl --data-binary '{"5": 1, "6": 10000}' \
> reminders.json
덤
내보낸 데이터를 jq
등으로 성형하면 필요한 데이터만 꺼낼 수 있어 편리합니다.
예를 들어, 알림 내용만 추출하려면 다음과 같이 합니다.
cat reminders.json | jq '.["1"][]["3"]'
Reference
이 문제에 관하여(Inbox 알림 알림 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/futa/items/c7a04c7b0be35508a626
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
curl --data-binary '{"5": 1, "6": 10000}' \
> reminders.json
내보낸 데이터를
jq
등으로 성형하면 필요한 데이터만 꺼낼 수 있어 편리합니다.예를 들어, 알림 내용만 추출하려면 다음과 같이 합니다.
cat reminders.json | jq '.["1"][]["3"]'
Reference
이 문제에 관하여(Inbox 알림 알림 내보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/futa/items/c7a04c7b0be35508a626텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)