Closed8
Google Calendarで不在を取得したり、タスクの追加や変更をするには
現状の開発力はこちらです。
- 2020年から、Pythonでデータを前処理してEDA整備までは自力でやれていました。
- 2022年12月に、初めてTypescriptでバックエンドを本格的に担い始めました。
- ツールはDBeaverやPostman、PyCharmなどを利用しています。
- 既存プロダクトにSlackとNotionのAPIを連携して、今週はGoogle Calendarをやっつけます。
公式ドキュメントの右側で、パラメーターを入力すればレスポンスを検証できる。
ブラウザから探してもevent_id
が見当たらないので「不在」はEvents
ではなさそう。
Freebusy
を探してみたが、不在を取得できそうなメソッドが見つからない。
手探りになりすぎているので、実装したいことを改めて整理する。
-
GET
:不在を取得する -
POST
:データベースを参照してタスクを追加する -
POST
:タスクを完了したらデータベースを更新する
まずはGETから片付けたいので、やっぱり不在取得を模索する。
API ExploerでFreebusy
を叩くと、年末年始休暇で入れていた不在を取得できていないことが判明。
"busy": [
{
"start": "2023-01-01T13:27:40+09:00",
"end": "2023-01-10T07:00:00+09:00"
},
{
"start": "2023-01-10T08:00:00+09:00",
"end": "2023-01-10T12:00:00+09:00"
}
]
ただ、Spirでは不在(真ん中の日)が正しく認識されている。
恐らく、異なるメソッドを利用している。
不在はEvents: list
で取得でき、eventType
がoutOfOffice
を参照すれば良いことが分かった。
{
"kind": "calendar#event",
"etag": "\"hogehogehoge\"",
"id": "hogehogehoge",
~~~~~~~
"start": {
"dateTime": "2022-12-26T00:00:00+09:00",
"timeZone": "Asia/Tokyo"
},
"end": {
"dateTime": "2023-01-10T00:00:00+09:00",
"timeZone": "Asia/Tokyo"
},
~~~~~~~
,"eventType": "outOfOffice"
}
ということで必須要件の「GET
:不在を取得する」は理解できたので、実装に移る。
要件を見直し、最低限の実装ではなかったので撤退。
このスクラップは2023/01/11にクローズされました