从 Youtube API v.2 迁移到 v.3 - 非常简单的应用
Migrate from Youtube API v.2 to v.3 - very simple app
我使用 Youtube API v.2 来检索我上传的列表。
该列表位于此处:
https://gdata.youtube.com/feeds/api/users/blablabla/uploads?v=2&max-results=10&alt=json。我每天都查看它并自动将新视频发布到我的博客。
它太棒了,太简单了,我打算在接下来的一百年里继续使用它。但它不再起作用了。
使用新 API 解决此问题的最简单方法是什么?
这就是我在发布此问题之前尝试做的事情:
- 在 google 开发者控制台中注册了新应用,打开了 youtube api。
- 在凭据选项卡中创建 OAUTH 服务帐户,获取 ClientId 和 P12 密钥。
- 已下载google-api-php-客户端。
写过这段代码:
$client_id = "blablabla.apps.googleusercontent.com";
$client = new Google_Client();
$client->setApplicationName("Youtube Exporter");
$key = file_get_contents("key.p12");
$cred = new Google_Auth_AssertionCredentials($client_id,
"https://www.googleapis.com/auth/youtube",
$key);
$client->setAssertionCredentials($cred);
$client->getAuth()->refreshTokenWithAssertion($cred);
$service = new Google_Service_Youtube($client);
代码抛出invalid_grant异常,不知道是common auth还是youtube服务的问题
您不需要客户端 ID 或 P12 密钥;相反,您只需要 "public API access" 部分下的 "key for browser applications"。 IT 只是一把钥匙(不是一对),一旦您拥有它,您可以执行以下操作:
1) 您需要获取您的频道 ID(与您的用户名不同)。这是一个以 UC 开头的长字符串。如果找不到,可以发送快速请求至:
https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername={YOUR_USERNAME}&key={YOUR_API_KEY}
生成的 json 数据包中将包含您的频道 ID。
使用密钥和频道 ID,您可以非常轻松地获取上传列表,而无需您正在尝试的任何 PHP 代码……PHP 客户端将非常有用,如果您需要对其他人进行身份验证才能执行上传等操作。但是对于公开可读的数据,您只需将请求发送至:
https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId={YOUR_CHANNEL_ID}&maxResults=10&key={YOUR_API_KEY}
我使用 Youtube API v.2 来检索我上传的列表。 该列表位于此处: https://gdata.youtube.com/feeds/api/users/blablabla/uploads?v=2&max-results=10&alt=json。我每天都查看它并自动将新视频发布到我的博客。
它太棒了,太简单了,我打算在接下来的一百年里继续使用它。但它不再起作用了。
使用新 API 解决此问题的最简单方法是什么?
这就是我在发布此问题之前尝试做的事情:
- 在 google 开发者控制台中注册了新应用,打开了 youtube api。
- 在凭据选项卡中创建 OAUTH 服务帐户,获取 ClientId 和 P12 密钥。
- 已下载google-api-php-客户端。
写过这段代码:
$client_id = "blablabla.apps.googleusercontent.com"; $client = new Google_Client(); $client->setApplicationName("Youtube Exporter"); $key = file_get_contents("key.p12"); $cred = new Google_Auth_AssertionCredentials($client_id, "https://www.googleapis.com/auth/youtube", $key); $client->setAssertionCredentials($cred); $client->getAuth()->refreshTokenWithAssertion($cred); $service = new Google_Service_Youtube($client);
代码抛出invalid_grant异常,不知道是common auth还是youtube服务的问题
您不需要客户端 ID 或 P12 密钥;相反,您只需要 "public API access" 部分下的 "key for browser applications"。 IT 只是一把钥匙(不是一对),一旦您拥有它,您可以执行以下操作:
1) 您需要获取您的频道 ID(与您的用户名不同)。这是一个以 UC 开头的长字符串。如果找不到,可以发送快速请求至:
https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername={YOUR_USERNAME}&key={YOUR_API_KEY}
生成的 json 数据包中将包含您的频道 ID。
使用密钥和频道 ID,您可以非常轻松地获取上传列表,而无需您正在尝试的任何 PHP 代码……PHP 客户端将非常有用,如果您需要对其他人进行身份验证才能执行上传等操作。但是对于公开可读的数据,您只需将请求发送至:
https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId={YOUR_CHANNEL_ID}&maxResults=10&key={YOUR_API_KEY}