2014-02-20 152 views
0

如何将个人的YouTube帐户“链接”到我的网站上的帐户?我试图从视频中获取Google Analytics,他们赚了多少钱等。我知道我应该使用YouTube Analytics API,但是我看到大量不同的文档,并且它变得令人困惑。是否有任何PHP库可用于获取此数据并将用户帐户链接到我的Web应用程序?我也对我获得OAuth密钥的位置感到困惑。YouTube Analytics API入门?

这里有一些网站我已经看过:

1)Site One

2)Site Two

在站点中的两个,我看着例子,但没有真正帮助我,甚至了解如何开始。

回答

1

很多相关的信息,你需要的可以在这个文件中找到:

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

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

1)注册您的Web应用程序中Google Cloud Console

这是必需的,因此您可以获得客户机密钥和客户机ID,您的服务器端PHP代码需要这些代码才能执行oAuth流(并获得正确的范围以查询分析DA ta代表用户身份验证)。看到这里就如何做到这一点的详细信息:

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

最重要的事情做,因为你的注册应用程序是打开的YouTube Analytics(分析)API,并为您的Web应用程序的新客户端ID。

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

https://accounts.google.com/o/oauth2/auth?client_id=[YOUR客户端ID] & redirect_uri = [URL您希望用户被指定为认证后] &范围= https://www.googleapis.com/auth/yt-analytics.readonly&response_type=code&access_type=offline

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

3)重定向网址将由第2步由Google的服务器请求“code”参数attched。因此,当它被请求时,它应该立即对另一个URL进行POST(即使用cURL或类似的东西),看起来像这样:

POST/o/oauth2/token HTTP/1.1 Host:accounts.google。COM 内容类型:应用/ X WWW的窗体-urlencoded

代码= [CODE,在来了作为GET PARAMETER] & 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的分析服务对象为你因为它正在进行各种呼叫。

+0

非常深思熟虑的答案。谢谢!另外,我是否会将用户注册与他们的YouTube或将他们的YouTube连接到我已经创建的帐户。 –

+0

我已经做到了这一点;如果他们已经在您的网站上有一个帐户,您可以通过点击启动oauth流程的按钮为他们提供一个“链接”帐户的选项,并在完成后将他们的Gmail地址存储在数据库中,并将其用户个人资料从您的网站存储到数据库中...或者如果他们使用oauth流创建新用户,那么当您返回您的网站时,他们也必须为您设置一个用户帐户。关键是你有他们的Gmail地址,所以当他们做oAuth流程时,你知道你的用户是谁! – jlmcdonald

+0

我在注册时询问用户的电子邮件。我是否还需要存储来自YouTube的电子邮件? @jlmcdonald –