我想使用 YouTube 数据 API 获取 iOS 应用程序中特定 YouTube 视频的缩略图链接。我转到 Google Developers Console 并创建了一个新项目。
对于该项目,我转到“API”并删除了它为我启用的默认 API,并添加了 YouTube 数据 API。然后,我转到凭据,创建了一个 iOS 公钥(因为我不需要用户登录或执行任何操作,只需获取缩略图 URL),这给了我一个 API 密钥。我在“允许的应用程序”下添加了项目的捆绑包标识符。
现在在我的应用程序中我尝试了以下代码:
let test = NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: "https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=*MYKEYHERE*&part=snippet,contentDetails,statistics,status")!, completionHandler: { (data, response, error) -> Void in
let json = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil)
println("JSON: \(json)")
})
但它打印出错误:
JSON: Optional({
error = {
code = 403;
errors = (
{
domain = usageLimits;
message = "Access Not Configured. Please use Google Developers Console to activate the API for your project.";
reason = accessNotConfigured;
}
);
message = "Access Not Configured. Please use Google Developers Console to activate the API for your project.";
};
})
我到底做错了什么?
控制台中存在有关 Bundle id 的已知问题。如果您可以删除该限制,它应该可以正常工作。
您可以从此处跟踪原始问题:https://code.google.com/p/gdata-issues/issues/detail?id=5770
这就是您所需要的,YouTube 有一个通过网络的服务 API 来咨询此类事情。我使用此 URL 来查询用户的所有视频(获取每个视频:URL、缩略图、观看次数、持续时间等)。我确信您会找到特定视频的缩略图。它是一个 JSON 响应,因此您必须仔细查看结构,但没有比这更简单的了。