【问题标题】:Getting started with the YouTube Analytics API?开始使用 YouTube 分析 API?
【发布时间】:2014-03-20 18:24:18
【问题描述】:

如何将某人的 youtube 帐户“链接”到我网站上的帐户?我正在尝试从视频中获取分析,他们赚了多少钱等。我知道我应该使用 YouTube Analytics API,但我看到大量不同的文档,它变得如此混乱。我可以使用任何 PHP 库来获取这些数据并将用户帐户链接到我的 Web 应用程序吗?我也对从哪里获得 OAuth 密钥感到困惑。

以下是我看过的一些网站:

1)Site One

2) Site Two

在站点 2 上,我查看了示例,但没有什么能真正帮助我理解如何开始。

【问题讨论】:

    标签: php api youtube youtube-api youtube-analytics


    【解决方案1】:

    您需要的许多相关信息都可以在此文档中找到:

    https://developers.google.com/youtube/analytics/authentication

    基本上,它概述了以下 4 个步骤:

    1) 在 Google Cloud Console 中注册您的网络应用

    这是必需的,因此您可以获得客户端密码和客户端 ID,您的服务器端 PHP 代码将需要它们来执行 oAuth 流程(并获得正确的范围,以便能够查询用户的分析数据)认证)。有关如何执行此操作的更多信息,请参见此处:

    https://developers.google.com/youtube/analytics/registering_an_application

    注册应用时最重要的事情是打开 YouTube Analytics API 并为您的网络应用创建一个新的客户端 ID。

    2) 当用户访问您的页面时,您需要某种方式(例如登录按钮)来触发 oAuth 流程的启动。触发时,您需要将浏览器重定向到此 URL:

    https://accounts.google.com/o/oauth2/auth?client_id=[您的客户 ID]&redirect_uri=[您希望用户在身份验证后被定向到的网址]&scope=https://www.googleapis.com/auth/yt-analytics.readonly&response_type=code&access_type=offline

    这将向他们显示一个窗口,询问他们是否要授予您的应用读取其分析的权限。请注意,客户端 id 参数与您在步骤 1 中注册应用程序时收到的参数相同。该注册过程还需要您设置允许的重定向 URI,因此您必须在此处传递您在注册中设置的一个。

    3) 从第二步开始,Google 的服务器将请求重定向 URL,并附加一个“code”参数。因此,当它被请求时,它应该立即对另一个 URL 进行 POST(即使用 cURL 或类似的东西),如下所示:

    POST /o/oauth2/token HTTP/1.1 主机:accounts.google.com 内容类型:application/x-www-form-urlencoded

    code=[作为 GET 参数传入的代码] &client_id=[YOUR CLIENT ID]&client_secret=[YOUR CLIENT SECRET]&redirect_uri=[注册的重定向 URI]&grant_type=authorization_code

    如果您使用 cURL 作为 POST 执行此操作,则响应将是一个 JSON 数据包,其中包含访问令牌和刷新令牌。

    4) 您的 php 页面可以存储这两者(例如,在您的数据库中),注意此时用户应该被视为已登录,您可以在发送的所有 API 请求的标头中使用访问令牌到分析 API。

    https://developers.google.com/youtube/analytics/authentication#OAuth2_Calling_a_Google_API

    它会在一小时后过期,因此对于每个请求,您都应该检查它的年龄(例如,当您将它存储在数据库中时,您可以存储过期时间),以及当您接近时可以使用刷新令牌获取新的访问令牌。

    https://developers.google.com/youtube/analytics/authentication#OAuth2_Refreshing_a_Token

    您现在可以将它们重定向到您的应用需要它们开始与 API 交互的任何位置。

    看起来很多?可以,但是一旦你掌握了范式,它就很简单了。你问了一个 PHP 客户端,幸好有一个:

    https://github.com/google/google-api-php-client

    它为整个 oAuth2 流程提​​供了简单的处理程序,并且还有一个 YouTube 分析服务对象,可以在进行各种调用时自动为您设置访问令牌。

    【讨论】:

    • 经过深思熟虑的答案。谢谢!另外,我是否会让用户注册他们的 youtube 或将他们的 youtube 链接到我已经创建的帐户。
    • 我已经做到了两种方式;如果他们已经在您的网站上拥有一个帐户,您可以通过单击启动 oauth 流程的按钮为他们提供“链接”该帐户的选项,完成后,将他们的 gmail 地址与您网站上的用户个人资料一起存储在数据库中...或者如果他们使用 oauth 流程创建了一个新用户,那么当返回您的站点时,他们也必须为您设置一个用户帐户。关键是您有他们的 gmail 地址,因此当他们执行 oAuth 流程时,您就知道它是您的哪些用户!
    • 我在注册时询问用户的电子邮件。我还需要存储他们来自 youtube 的电子邮件吗? @jlmcdonald
    • 另外,调用 API 是否有任何速率限制?我计划让很多用户提出要求。
    • 如果您在启动时询问他们的电子邮件,他们可能会为您提供一个不是他们的 Google 帐户的电子邮件,但您需要存储 Google 帐户,这是关联他们的唯一方法当他们使用 oAuth 登录时正确。有一个配额系统,不同的呼叫被收取不同的配额。不过,它没有具体定义,而是讨论相对配额:developers.google.com/youtube/analytics/v1/reports 有更多详细信息。它没有完全定义的原因是它仍处于监控人们如何使用 API 的阶段。
    猜你喜欢
    • 2014-08-18
    • 2017-09-10
    • 2023-04-08
    • 2015-12-30
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多