Теперь можно продлить время для access token
. Срок годности истекает через час. Единственный способ использовать токен - получить новый токен, используя refresh_token
, предоставленный api.
Сначала вы получите автономный токен, установив access_type
на offine
при аутентификации пользователя.
{
'response_type': 'code',
'client_id': 'client_id',
'redirect_uri': '...',
'access_type':'offline',
'scope': 'https://www.googleapis.com/auth/youtube.readonly',
}
вы получите refresh_token
, access_token
, id_token
вместе с expiry
и некоторые другие поля, которые вы можете сохранить в своей базе данных и при необходимости получить позже.
Перед использованием access_token
вы проверяете, действителен ли он
creds = google.oauth2.credentials.Credentials(access_token,refresh_token=refresh_token,id_token=id_token,token_uri=token_uri,client_id=client_id,client_secret=client_secret,scopes=scopes,expiry=expirytime)
if creds.valid == False:
// Refresh to get the new token
req =google.auth.transport.requests.Request()
creds.refresh(req)
// Now Save new Credentials from "creds" so that you can use later.
После проверки access_token
теперь вы можете запросить youtube data api
запросов
youtube = googleapiclient.discovery.build(
"youtube", "v3",credentials=creds)
req = youtube.videos().getRating(id="xxxxxxxxx")
resp =req.execute()