【发布时间】:2018-01-26 23:01:06
【问题描述】:
我正在开发生成有关 youtubers 频道的报告和统计信息的应用程序。我在 Google 文档中找不到,Youtube 用户如何授予我的应用程序对其 Youtube 帐户的只读访问权限? (我的意思是类似于 facebook 应用程序)。
我有点困惑 Google API 中有多少种身份验证方式,我应该使用哪一种。
【问题讨论】:
标签: google-api google-oauth youtube-data-api
我正在开发生成有关 youtubers 频道的报告和统计信息的应用程序。我在 Google 文档中找不到,Youtube 用户如何授予我的应用程序对其 Youtube 帐户的只读访问权限? (我的意思是类似于 facebook 应用程序)。
我有点困惑 Google API 中有多少种身份验证方式,我应该使用哪一种。
【问题讨论】:
标签: google-api google-oauth youtube-data-api
当您想要访问私人频道数据时,您需要使用 OAuth 授权。
这种工作方式是您的应用将客户重定向到 Google 的授权页面,他们可以在该页面上选择与其 Google 帐户关联的 YouTube 频道。如果他们尚未登录,Google 将首先要求他们登录(验证),然后进入授权页面。
一旦进入授权页面,他们就可以决定授予或拒绝您的应用程序访问您的应用程序需要访问的任何内容。这是重要的部分:当您的应用程序将用户重定向到授权页面时,它必须指定一个或多个范围。
范围定义了应用程序在用户授予权限后可以执行的操作集。应用程序不能执行不在其权限范围内的操作。 YouTube API 的三个最重要的范围是:
https://www.googleapis.com/auth/youtube:管理您的 YouTube 帐户
https://www.googleapis.com/auth/youtube.readonly:查看您的 YouTube 帐户
https://www.googleapis.com/auth/youtube.upload:管理您的 YouTube 视频
这意味着您可以通过将您的应用配置为使用https://www.googleapis.com/auth/youtube.readonly 范围来要求用户授予您的应用对其频道的只读访问权限。这是您的应用程序将其用户重定向到的 URL 的示例:
https://accounts.google.com/o/oauth2/v2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly&
access_type=offline&
redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback&
response_type=code&
client_id=CLIENT_ID
如果用户接受,您的服务器将获得一个授权代码,它可以交换一组访问和刷新令牌。资源服务器(在本例中为 Google)将知道这些令牌最初是在哪个范围内获取的,并拒绝范围外的任何调用。
这是授权页面当前的样子:
更多信息,请阅读'Using OAuth 2.0 for Web Server Applications' on Google Developers。
【讨论】: