calendar_sample.py

Table of contents

背景

來源

引數

kuang@eng06 /nas2/kuang/MyPrograms/GoogleCalendarAPI
$ python calendar_sample.py --help
usage: calendar_sample.py [-h] [--auth_host_name AUTH_HOST_NAME] [--noauth_local_webserver] [--auth_host_port [AUTH_HOST_PORT ...]]
                          [--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]

Simple command-line sample for the Calendar API.
Command-line application that retrieves the list of the user's calendars.

optional arguments:
  -h, --help            show this help message and exit
  --auth_host_name AUTH_HOST_NAME
                        Hostname when running a local web server.
  --noauth_local_webserver
                        Do not run a local web server.
  --auth_host_port [AUTH_HOST_PORT ...]
                        Port web server should listen on.
  --logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Set the logging level of detail.

參數說明

  • 似乎把client_secrets.json檔案內有關localhost:8080改設成其他網頁也會有效果。(這點還有待證實,該網頁如何把訊息傳回給程式?)。

指定認證主機名稱

  • [--auth_host_name AUTH_HOST_NAME]
  • 這個方式是提供一個可以連線的認證主機,此時須提供主機名稱。如果主機在/etc/hosts中已經登陸,應該也可以直接以名稱連線。

提供認證主機ip及端口

  • [--auth_host_port [AUTH_HOST_PORT ...]]
  • 這個ip及端口須和client_secrets.json檔案內設定一致。

noauth_local_webserver

  • 當程式執行找不到本地的瀏覽器進行Oauth2認證,會出現noauth_local_webserver的建議,並出現一長串網址。
  • 將網址輸入到任何瀏覽器,是可以進行認證,但認證結果無法回到程式。

calendar.dat

  • 這個輸入檔案如果不存在,程式會進行Oauth2驗證,取得google calendar的訪問令牌。
  • 如果存在,會利用其中的"refresh_token"來通過驗證,即使"access_token"失效(一般google token伺服器給的時限是3599秒),詳情見自動登錄與令牌們的管理
  • calendar.dat的內容詳見如何取得 Refresh Token