我使用Youtube API v.2来检索上传列表。 名单位于: https://gdata.youtube.com/feeds/api/users/blablabla/uploads?v=2&max-results=10&alt=json。我每天检查它并自动将新视频发布到我的博客。
它是如此辉煌和如此简单,以至于我将在接下来的一百年里使用它。但它不再起作用了。
使用新API修复此问题的最简单方法是什么?
这是我在发布这个问题之前尝试做的事情:
编写了这段代码:
$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异常,我不确定它是关于常见的auth或youtube服务。
答案 0 :(得分:2)
您不需要客户端ID或P12密钥;相反,您只需要“公共API访问”部分下的“浏览器应用程序密钥”。它只是一个键(不是一对),一旦你拥有它,你可以做到以下几点:
1)您需要获取频道ID(与您的用户名不同)。这是一个以UC开头的长字符串。如果找不到,可以发送快速请求:
https://www.googleapis.com/youtube/v3/channels?part=snippet&forUsername={YOUR_USERNAME}&key={YOUR_API_KEY}
生成的json数据包将包含您的频道ID。
使用密钥和渠道ID,您可以非常轻松地获取上传列表,而无需使用您正在尝试的任何PHP代码...如果您需要对ohers进行身份验证,PHP客户端将非常有用做上传等事情。但对于公开可读的数据,您只需发送请求:
https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId={YOUR_CHANNEL_ID}&maxResults=10&key={YOUR_API_KEY}