2019.09.01この記事は約20分で読めます。Calendarを使用しています。Calendarの予定を取得したり、追加したりすることができます。Calendarの予定を操作できるとなにかと便利だと思ったので、利用方法を紹介したいと思います。APIを利用するための設定を行います。Quickstartのページに従いながら行います。APIを使うために以下の前提条件を満たしている必要があります。Calendarが有効になっているGoogleアカウントpipはpython3.4以降のものをインストールすれば、一緒にインストールされるのであまり気にしなくても大丈夫だと思います。pipって何ですか?ってゆう感じの人はこちらを御覧ください。API」というボタンを押します。ボタンを押すと以下のようなウィンドウが現れます。CONFIGURATION」ボタンを押します。するとcredentials.jsonというファイルがダウンロードされます。このファイルは後ほど利用するので、保管しておいてください。API」ボタンを押せば再度表示できるので、特に記録しておく必要はありません。Libraryのインストール次にStep2に記載のコマンドをコピーして、ターミナルで実行します。google-auth-oauthlibStep3:sampleファイルを準備する公式サイトに記載の通り、quickstart.pyファイルを作成し、以下の内容を記述します。作成したquickstart.pyファイルを実行するのですが、その際にquickstart.pyと同じフォルダにStep1でダウンロードしたcredentials.jsonファイルがないといけません。quickstart.pyとcredentials.jsonを同一フォルダに置いてください。そのフォルダ内で以下のコマンドを実行します。quickstart.pyコマンドを実行するとブラウザが起動し、Googleアカウントにログインする画面が現れると思います。Step1を実施したときのアカウントを選択します。すると以下のような警告画面が出ると思います。これは問題ないので、左下の詳細をクリックします。すると以下のような画面になります。左下に現れた「Quickstart(安全ではないページ)に移動」をクリックします。すると以下のような画面が現れます。これも「許可」をクリックします。すると以下のような画面が現れます。クドいですが、もう一度「許可」をクリックします。window.」とだけ書かれた画面が現れます。これでブラウザは閉じて構いません。schedule内に予定があれば下記のように表示されるはずです。予定2また、quickstart.pyとcredentials.jsonを置いているフォルダに戻るとtoken.pickleというファイルができていると思います。このファイルがあれば今後は上記のクドい認証作業は不要となります。Calendarの予定を取得quickstart.pyがすでに直近の10件の予定を取得するコードになっていますが、もう少し追記して使いやすい形に変えておきましょう。基本的には先程のコードの40行目のevents().list(calendarId=....)部分を変更していきます。指定できるパラメータ一覧およびその説明の詳細は公式を参照ください。今回はtimeMaxとtimeMinを使って、指定の期間の予定を取得するようにしましょう。カレンダーIDをprimaryではなく、専用のカレンダーIDから取得するようにします。Calendarに新しいカレンダーを追加します。Calendarの左にある他のカレンダーの右にある「+」ボタンを押します。すると以下のように「新しいカレンダーを作成」というのが現れるのでクリックします。設定画面に切り替わり、新しいカレンダーを作成する画面が現れるので、新しいカレンダーの名前を入力し、「カレンダーを作成」ボタンをクリックします。ここではsampleという名前にしました。Calendarの画面に戻ると左下にsampleのカレンダーが現れているので、その右の縦に点が3つならんだボタンを押します。すると設定と共有というボタンが現れるのでそれを押します。設定画面にいくので、下の方にスクロールすると「カレンダーの統合」という見出しがあり、その下にカレンダーIDがあります。ここに表示されているIDをコピーします。Calendarの予定を取得quickstart.pyの内容を少し書き換えるので、quickstart.pyの内容をコピーし、新たにget_event.pyというファイルを作ります。先程コピーしたIDをget_event.pyのcalendarIdのところに貼り付けます。2019年9月1日〜10月1日の1ヶ月の予定を取得するプログラムに変更するために、timefromとtimetoという変数を設定しました。APIは時間をISOフォーマットで受け取るようなので、isoformatに変換しています。38行目)一方、出力される結果はISOフォーマットではなく、普通の日次で表示されて欲しいので、その変換もしています。main()上記を実行すると以下のような結果が得られると思います。Calendarの予定を取得することができました。Calendarに予定を追加するコードを書きましょう。Calendarへの書き込みを行うので、アクセス権限を変える必要があります。書き込み権限はget_event.pyの10行目に記載のSCOPESから.readonlyの文字列を削除し、以下のように記述します。['https://www.googleapis.com/auth/calendar']9行目にコメント文で記載がありますが、このSCOPESを変更した場合はtoken.pickleを一旦削除し、再度作成する必要があります。token.pickleを削除して、一度プログラムを実行しましょう。get_event.pyすると、Step4:sampleファイルの実行で実施した流れになると思いますが、権限付与の箇所が異なります。以下のような画面になっていると思いますので、両方とも許可を選択します。予定の書き込みにはevent().insert(calendarId=...)メソッドを使用します。event().insertのパラメータも数が多いので詳細は公式で確認してください。使い方はシンプルで、予定に書き込む情報を辞書(json)形式で記述し、それをbodyとしてinsert()に書き込む形です。説明だけではわかりにくいと思いますので、以下がコードになります。main()34〜46行目にeventという辞書を作成しています。eventの中身は以下になります。Calendarの予定の見出しの文字列です。Calendarの予定の中の説明を記述する部分です。ファイル名はinsert_event.pyとしました。insert_event.py実行すると何やらよくわらかない文字列が表示されますが、それがeventのidになります。Calendarに移動してみてください。eventに記載した日次に予定が追加されていると思います。Calendarに予定を追加することができました。APIを利用している人がいないようでしたので、参考になればうれしいです。よかったらこちらのボタンをポチッとしておいていただけると嬉しいです。不動産投資Reviewホーム検索トップサイドバータイトルとURLをコピーしました。