У объекта 'HttpResponseRedirect' нет атрибута 'authorize' Python Django youtube-api Web
Я не могу получить разрешение. Выдается эта ошибка. Что делать?
Я вызвал функцию get_user_info, передав в качестве аргументов первичный ключ пользователя и его токен. Затем в функции get_user_info вызывается функция get_service для получения доступа к учетной записи пользователя на YouTube. Проблема возникает, когда я пытаюсь перенаправить пользователя на страницу с разрешением на получение информации о его аккаунте.
TOKEN_FILE = json.dumps(GlobalSettings.objects.first().secret_token)
APP_TOKEN_FILE = json.loads(TOKEN_FILE)
SCOPES = ["https://www.googleapis.com/auth/youtube.readonly"]
def get_creds_saved(current_user_pk, USER_TOKEN):
creds = None
if USER_TOKEN is not None:
creds = Credentials.from_authorized_user_info(USER_TOKEN, SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_config(APP_TOKEN_FILE, SCOPES)
flow.redirect_uri = 'https://oxy-cash.ru/earnmoney/'
authorization_url, state = flow.authorization_url(
access_type='offline',
include_granted_scopes='true')
return redirect(authorization_url)
# user = CustomUser.objects.get(pk=current_user_pk)
# user.user_token = creds.to_json()
# user.save()
return creds
def get_service(current_user_pk, USER_TOKEN):
creds = get_creds_saved(current_user_pk=current_user_pk, USER_TOKEN=USER_TOKEN)
service = build('youtube', 'v3', credentials=creds)
return service
def get_user_info(current_user_pk, USER_TOKEN):
channel = get_service(current_user_pk=current_user_pk, USER_TOKEN=USER_TOKEN).channels().list(part="snippet,contentDetails,statistics", mine=True).execute()
info = {
'username': channel['items'][0]['snippet']['title'],
'photo': channel['items'][0]['snippet']['thumbnails']['default']['url']
}
return info
def app_earnmoney(request):
if request.user.is_authenticated:
current_user = CustomUser.objects.get(pk=request.user.pk)
is_next_day(current_user)
info = get_user_info(current_user_pk=request.user.pk, USER_TOKEN=current_user.user_token)