Google Calendar への予定登録を curl を使って試した時の備忘録です。
まず、下記の公式サイトにアクセスします。
このページは、Google Calendar APIを使っての予定の登録はこのページを参考にしてという内容が書いてあります。
https://developers.google.com/calendar/v3/reference/events/insert
アクセスするとこのような画面になるので、右側の「Try it!」というボタンをクリックします。
すると、Request parameters と Request body を入力する画面が表示されるので、必要な個所を入力していきます。
##必須項目
公式サイトを読むと
Request parameters には、calendarId が必須、
Request body には、end と start が必須
と記載されていました。
なので、そこの部分を埋めていきます。
##入力
今回は、下記のようにしてみます。せっかくなので、summaryも追加して、予定名も付けました。
Request parameters
calendarId : primary
Request body
{
"end": {
"dateTime": "2021-01-11T23:00:00+09:00"
},
"start": {
"dateTime": "2021-01-11T21:00:00+09:00"
},
"summary": "Google Calendar API テスト"
}
入力したら、画面下の「EXECUTE」ボタンをクリックします。(API key のチェックは外しています。)
Google Calendar を開いてみると、正しく登録できているのが確認できました。
##本題のcurlコマンドを使って予定の登録を行っていきます。
まず、画面のcURLタブのコマンドをコピーします。
コピーしたコマンドが Linux 環境向けだったので、Git Bashを開いて貼り付けました。
※access_toeknは事前に取得していたアクセストークンを張り付けています。
$ curl --request POST \
> 'https://www.googleapis.com/calendar/v3/calendars/primary/events' \
> --header 'Authorization: Bearer ya29.a0AfH6SMCWXNZ5EAu6vv4QLbKyy_eq_ZeNFFxsS--djodFSFoAUjX_6jHa-CTGyVM4I2UH8jHSTlmByfwVXbCc4BQJBcRKTLhnD3vYNunDwhXt8FGTgx9Ek627Rf7RVOfNvrjua4NkSYkse-5yYxdhsTMuoOT6po5suyxhR9l6ptc' \
> --header 'Accept: application/json' \
> --header 'Content-Type: application/json' \
> --data '{"end":{"dateTime":"2021-01-11T23:00:00+09:00"},"start":{"dateTime":"2021-01-11T21:00:00+09:00"},"summary":"Google Calendar API TEST"}' \
> --compressed
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 871 100 737 100 134 471 85 0:00:01 0:00:01 --:--:-- 557{
"kind": "calendar#event",
"etag": "\"3219531517408000\"",
"id": "bkt13a929n6tsqjd5b2otnapi8",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=Ymt0MTNhOTI5bjZ0c3FqZDViMm90bmFwaTggZ3V5Lm5pY2VndXkxMjM0NUBt",
"created": "2021-01-04T13:09:18.000Z",
"updated": "2021-01-04T13:09:18.704Z",
"summary": "Google Calendar API TEST",
"creator": {
"email": "guy.niceguy12345@gmail.com",
"self": true
},
"organizer": {
"email": "guy.niceguy12345@gmail.com",
"self": true
},
"start": {
"dateTime": "2021-01-11T21:00:00+09:00"
},
"end": {
"dateTime": "2021-01-11T23:00:00+09:00"
},
"iCalUID": "bkt13a929n6tsqjd5b2otnapi8@google.com",
"sequence": 0,
"reminders": {
"useDefault": true
}
}
Response の中身を見てもわかる通り、正しく予定を登録することができました。
#苦労したことメモ
・RFC3339 でのJST の指定の仕方が分からなかった。
→「YYYY-MM-DDTHH:MM:SS+09:00」と打てばよい。
例)2021-01-11T21:00:00+09:00
・Git bash でcurlコマンドから予定を登録するときに、summaryに日本語文字を使うと文字化けして登録される。
「chcp.exe 65001」、「chcp.exe 932」を実行して文字コードを変えてみても、どちらもうまくいかなかった。
→未解決です。