Youtube Analytics API 教学 - OAuth2.0 开放授权 (2)

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


Youtube Analytics API 教学 - OAuth2.0 开放授权 (2)

YouTube Analytics API 的使用牵涉了你帐户中的营利观看与各个影片的表现,更白话的说法就是你创作者工作室 Youtube Studio 中的资讯,都能够被这个功能所抓出来,他需要具有高度的验证与安全性,但也同时给予了影音串流和数位行销的工作者,有了更加弹性的资料运用方式,更灵活的追踪每 Youtube 影片的影片资讯。这篇是 Python - 数位行销的 Youtube 分析教学系列文章的第 16 篇,也是我参加 2021 iThome 铁人赛中系列文章的第 16 天。

系列文章:Python — 数位行销分析与 Youtube API 教学
昨日回顾:Youtube Analytics API 教学 - OAuth2.0 开放授权 (1)

关於 OAuth 2.0 Server 端的应用

Untitled

OAuth 2.0 是一种用於授权的标准协议。 OAuth 2.0 提供了客户端开发人员简单且特定的授权流程,能够同时为 Web 应用、桌面应用、智慧型手机和家电设备提供特定的授权流程。像是当你在呼叫 Google API 或是 Youtube API 时,可以无需访问该用户的帐户,就能代表你的应用程序执行。

在这些情况下,应用程序需要向 API 证明自己的身份来对某些资源进行的访问的请求。简单来说,这些类型的服务器交互需要你的应用程序的服务帐户,而不是对个人最终用户的帐户 (特别注意的是对象不一样),能让你的应用程序代表服务帐号调用 Google API,不需要用户同意。

利用 UML 方式图解 OAuth 2.0 Server

上面说了很多很像绕口令的内容,我们用时序图 (Sequence diagram) 来说明也许会更好理解,对於 OAuth2.0 流程,可以理解成是执行第一次 OAuth 以後,让浏览器取得授权,此时系统会回传一个Credentials 物件 (文件),之後你所有的内容执行都可以建立在这个物件上,而 Credentials 物件会包含两个 Tokens:Refresh 和 Access Token ,你的应用程序将令牌请求发送到 Google OAuth 2.0 授权服务器,而授权服务器回传访问权限。这个应用程序就能使用权限访问 Google API。而当权限过期时,应用程序就重复这个过程,重新取得权限。

  • Refresh Token (效期 200天):用以请求各项 Google APIs 的Token
  • Access Token (效期 1 小时):用以请求 Youtube API,当 Access Token 过期,程序逻辑能够在每次呼叫 Youtube API之前去检查值,若是过期 (valid == False),则 Refresh Access Token ,这样即可继续使用 Youtube API。

OAuth 2.0 Server

回到 Google Cloud Platform 确定设定状况

昨天我们有说明到 OAuth consent screen 的设定,有了刚刚上面提到的概念後再回来看我们的设定可以更简单理解目前 OAuth 的设定状况,App Name 设定结果为 (incbot)、UserType 为 (Extenal) 状态,代表任何拥有 Google 帐户的测试用户均可使用。 那目前 TestUser 就限制在 Publishing status 为测试状态 (Testing) 。

GCP

小补充

如果对於 OAuth 2.0 有兴趣可以去 Google Developers 和 Github 看看更多资讯

今天说明了 OAuth2.0 的概念与 Sequence Diagram

如果有时间也欢迎看看我的夥伴们的文章:

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

Jerry Chien

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

下一篇:Youtube Analytics API 教学 - OAuth2.0 开放授权 (3)


<<:  [Day16] 检讨会议这样开,就可惜了

>>:  初学者跪着学JavaScript Day16 : 阵列Array 迭代的小小秘密

Day 1:为什麽工程师要建立自己的技术部落格?

大家好我是 Gui,一名刚於私立科大资管系毕业的社会新鲜人,这是我第一次参与 IT 铁人赛,既紧张又...

WebRTC之旅:终

转眼间,三十天过去了~ 在这些日子中,练习写文章,练习自主学习的步调,练习整理思绪,学习新知......

[Day - 06 ] - Spring Conditional 运用与原理

Abstract 当每个开发者初始化一套服务时,可能会因不同的系统或不同的Java版本相容性问题进而...

Day13:13 - 购物车服务(1) - 後端 - 购物车总商品显示、加入购物车API

హలో,我是Charlie! 在Day12当中,我们完成了商品详情显示的API,而今天我们将完成後端...

Day 27 - 不安全的登入机制

出於书本 Chapter 14. Web sites and Application 不安全的登入机...