<p>根据<a href="https://google-auth.readthedocs.io/en/latest/oauth2client-deprecation.html#replacement" rel="nofollow noreferrer">oauth2client deprecation notes</a>,用于管理Google用户凭证的替换项是<a href="https://google-auth-oauthlib.readthedocs.io/en/latest/" rel="nofollow noreferrer">google-auth-oauthlib</a>。下面是在我的电脑上工作的代码片段(python3.6)。在</p>
<p>由于文档强调新库没有保存凭证,所以我使用<a href="https://docs.python.org/3.6/library/pickle.html" rel="nofollow noreferrer">pickle</a>保存凭证。也许,根据您的应用程序需求,您希望有一个更健壮的解决方案(比如数据库)。在</p>
<pre><code>import os
import pickle
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly', ]
# we check if the file to store the credentials exists
if not os.path.exists('credentials.dat'):
flow = InstalledAppFlow.from_client_secrets_file('client_id.json', SCOPES)
credentials = flow.run_local_server()
with open('credentials.dat', 'wb') as credentials_dat:
pickle.dump(credentials, credentials_dat)
else:
with open('credentials.dat', 'rb') as credentials_dat:
credentials = pickle.load(credentials_dat)
if credentials.expired:
credentials.refresh(Request())
calendar_sdk = build('calendar', 'v3', credentials=credentials)
calendars_get_params = {
'calendarId': 'primary',
}
test = calendar_sdk.calendars().get(**calendars_get_params).execute()
print(test)
</code></pre>