Как реализовать веб-приложение Oauth Popup Youtube API Call для начинающих - PullRequest
0 голосов
/ 30 мая 2019

Существуют ли обновленные учебные пособия для начинающих о том, как реализовать всплывающую авторизацию Google OAuth 2.0, чтобы клиенты моего веб-приложения могли использовать API данных Youtube?

Google Auth Popup, обычно встречающийся на веб-сайтах

Документация по быстрому запуску Google проходит только через консоль.

Я пробовал руководство по Oauth2.0 для веб-сервера, но оно не имеет смысла для меня, и оно также во Flask.

Все руководства, которым я следовал из Google, используют устаревшие пакеты.Все направляющие также отличаются друг от друга.

Это код, который дает то, что мне нужно.Однако вместо того, чтобы использовать всплывающее окно аутентификации Google, он просит меня перейти на консоль.

SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']

API_SERVICE_NAME = 'youtube'
API_VERSION = 'v3'


class youtube_base:
    # Working auth code
    def get_authenticated_service():
        flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
            CLIENT_SECRETS_FILE, SCOPES)
        credentials = flow.run_console()

        return build(API_SERVICE_NAME, API_VERSION, credentials=credentials)

Вот как я называю YouTube API в моем веб-приложении:

class YtAuthView(UserPassesTestMixin, UpdateView):
    model = Profile
    form_class = YtAuthForm
    template_name = 'yt_auth_update.html'

    def form_valid(self, form):
        client = youtube_base.get_authenticated_service()
        stats = get_channel_stats(client, self.object.youtube_channel_id)

        form.instance.yt_subscribers = stats['totalSubs']
        form.instance.yt_views_avg = stats['viewsAverage']
        form.instance.yt_views_median = stats['viewsMedian']
        form.instance.yt_eng_rate = stats['engagementRate']
        form.instance.yt_last_updated = stats['dataRecorded']

        response = super(YtAuthView, self).form_valid(form)

        return response

...