如何为初学者实施Web应用程序Oauth Popup Youtube API调用

时间:2019-05-30 06:22:15

标签: django python-3.x oauth-2.0 google-oauth youtube-data-api

是否有有关如何实施Google OAuth 2.0弹出式授权的更新的初学者教程,以便我的Web应用程序客户端可以使用Youtube Data API?

Google Auth Popup commonly found in websites

Google快速入门文档仅涉及控制台流程。

我已经尝试过Oauth2.0 for Web Server Application指南,但这对我来说毫无意义,而且在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

0 个答案:

没有答案