Youtube Reports API 教学 - 最後一次做 OAuth2.0 授权

「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的机器学习,不正经的数据分析师,毕业後把人生暂停了半年,在 Google 和 AWS 办过几场演讲,缓下脚步的同时找了份跨领域工作。偶而慢跑、爱跟小动物玩耍。曾立过很多志,最近是希望当一个有细节的人。」


Youtube Reports API 教学 - 最後一次做 OAuth2.0 授权

YouTube Reports API 能够使开发人员安排报告的排程,并且批量下载生成报告。对於 YouTube Reports API 而言, API 支持预先所以定义好的报告内容,并且每个报告都包含一组针对频道使用者或内容管理员 YouTube 资讯。灵活的追踪每 Youtube 影片的影片资讯,也有了更加弹性的资料运用方式。这篇是 Python - 数位行销的 Youtube 分析教学系列文章的第 27 篇,也是我参加 2021 iThome 铁人赛中系列文章的第 27 天。

系列文章:Python — 数位行销分析与 Youtube API 教学
昨日回顾:Youtube Analytics API 教学 - 告一个段落

关於 Google Cloud Platform

Google

在过去的内容已经有介绍过了,在这边就简单快速带过 Google Cloud Platform,Google Cloud Platform 是由 Google 提供的云端运算服务平台,提供了云端运算平台服务与无服务器运算环境,同性质的云端平台也包含了 Amazon AWS,以及 Microsoft Azure 云端平台,而因为 Youtube 本身隶属於 Google 的子公司,Youtube API 在 Google Cloud Platform 平台也拥有较好的支援性与相容性,因此该系列文章会以 Google Cloud Platform 为主要的说明工具

串接 Youtube ReportingAPI

OAuth2.0 是一种管理第三方帐户与 Google 连结方法,可以将某些第三方应用程序或服务连结到 Google 帐户。当您将 Google 帐户与第三方帐户建立连结後,我们使用时就能够利用 Python 来呼叫取用其资料, OAuth 授权就像视一种金钥,使用 token 藉由 Google 来取得该名使用者所授权的资源。我们可以藉由Google Cloud Platform 和 Google 帐户连动的的方式,直接利用 Google 登入 Google Cloud Platform 的主要介面平台,这里用专案 "iThome-2021-This-is-Project" 来进行。

  • 选取专案 Select
    我们进行该专案的选取,我们在 Select Project 的地方可以看见 iThome-2021-This-is-Project 这个专案的内容换句话说也就是接下来的开发跟串接内容会在这个专案内进行。
  • 未设置过 Project 可以回到 Day2 开始:Youtube Data API - 简介与建立 GCP 专案)
    https://ithelp.ithome.com.tw/articles/10266285

Day2

  • 进入 API Library
    当我们有需要在 Google Cloud Platform 存取或是呼叫 API 的使用需求时,我们能够在 API Library 查看所有 Google Cloud Platform 支援的 API 文件资讯以及服务

Library

  • 开启 Youtube Reporting API
    在 Library 中点选 YouTube ReportingAPI 後 进入内部将 API 打开(Enable),这样就等於说有开放该 API 的使用权限了,ReportingAPI 的功能很简单,就是检索您的 YouTube 分析数据,与你个人帐户有关的资料都会跟他相关。

Untitled

  • YouTube Analytics API key 的申请与使用
    开启 Library 内的 API 後我们回到左方的选单,点选旁边按钮来到 OAuth 同意画面 (consent screen),并且设定你的 OAuth consent screen。未设置过OAuth consent screen 可以回到 Day15 开始:Youtube Analytics API 教学 - OAuth2.0 开放授权 (1)
    https://ithelp.ithome.com.tw/articles/10266285

consent

  • 设定 Youtube API 的 Scopes 权限,也就是开放哪些 API Scopes 的使用

Scopes

  • 将自己加入 Test users 中, TestUser 可以限制在 Publishing status 为测试状态 (Testing) 时,仅有测试用户才能访问该应用程序,而每个应用程序验证前允许的用户上限为 100 人,并且要注意用户新增後无法进行删除。设定在 Test User 中设定测试帐号,这个测试帐号在 OAuth consent screen 未发布的情况下可以进入进行测试,因此开发者需要记得进去设定才能够有存取的权限。

users

串接 Youtube Reporting API

在 Youtube Reporting API 的认证中,呼叫 get_authenticated_service,并且以 build 方式呼叫Reporting API 的 v1 版本,并且在 credentials 中填入自己的金钥 ('youtubereporting','v1', credentials=credentials)

import argparse,os
import sys,time,csv
import google.oauth2.credentials
import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from googleapiclient.http import MediaIoBaseDownload
from google_auth_oauthlib.flow import InstalledAppFlow
from io import FileIO
from datetime import datetime

CLIENT_SECRETS_FILE = 'client_se.....com.json'
SCOPES = ['https://www.googleapis.com/auth/yt-analytics-monetary.readonly']
API_SERVICE_NAME = 'youtubereporting'

# Authorize the requests.
def get_authenticated_service():
    flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
    credentials = flow.run_console()
    return build('youtubereporting','v1', credentials=credentials)

build

  • 执行後可以在底下得到应用连结,点入连结後,进行 OAuth consent screen 的验证,详细资讯可以回到 Day15 看看:Youtube Analytics API 教学 - OAuth2.0 开放授权 (1)
    https://ithelp.ithome.com.tw/articles/10266285

Analytics

  • 进行 OAuth consent screen 的验证选取你的 Google Cloud Platform 帐户

screen

  • 完成 OAuth consent screen 的验证後将你获得的 authorization code 贴回 Python 的 authorization function 中,让 Python 知道要取用你这个帐户的资料。

OAuth

今天说明了 Reporting API 的 OAuth2.0 开放授权

终於迈入 Reporting API 了,等於我们的挑战赛到达了赛末点,还蛮高兴的,如果有时间也欢迎看看我的夥伴们的文章

lu23770127 — SASS 基础初学三十天
10u1 — 糟了!是世界奇观!
juck30808 — Python — 数位行销分析与 Youtube API 教学
HLD — 浅谈物件导向与Design Pattern介绍
SiQing47 — 前端?後端?你早晚都要全端的,何不从现在开始?

Jerry Chien

【鲑鱼均】 现职是 200 多万订阅 Youtuber 的数据分析师,专长在 Python 的开发与使用,大学虽然是资讯背景但总是斜杠跑到商管行销领域,以工作角度来说的话,待过 FMCG、通讯软件、社群影音产业,也算是个数位行销体系出生的资讯人。这 30 天铁人挑战赛会从数位行销角度去重新切入数据分析这件事情,期待这个社会中,每个人能在各个角力间不断冲突而渐能找到一个平衡点回归最初的统计建立最终的初心。

下一篇:Youtube Reports API 教学 - 频道中出报表


<<:  [Day 27] 阿嬷都看得懂的 JavaScript 怎麽写

>>:  #28 Click! Serve! Desktop

[Day 30] 我的旅途未来展望

没想到自己撑过了 30 天... 写到一半的时候,旅游不能病大发作 跑去大买一笔才缓解了自己的病症...

Day16 Vue directives(v-model资料双向绑定)

在Vue里有个很大的特色可能就是资料的双向绑定(Two-wayBinding),而资料绑定的话我们最...

Day 08 - UPDATE 把资料改成想要的样子!

上一篇我们学会了新增资料,但是如果资料打错了想要改的话应该怎们办呢?那这时候我们就需要用到我们的UP...

Day_28 Ad blocking

相信有许多人很讨厌网页广告,会在网页上安装广告拦截器如AdBlock、AdGuard等。但有很多装置...

既熟悉又陌生的字元集与比较规则

我们都知道电脑实际储存的是二进位资料,那是怎麽储存字元的呢? 可以想像的就是必须让字元映射成二进位资...