【发布时间】:2017-07-14 12:38:04
【问题描述】:
我正在调用 youtube api 来获取 youtube 视频数据列表。但我收到 403 错误。我还启用了 YouTube 数据 API (v3)。
我正在尝试使用 YouTube API 从 YouTube 获取视频列表。我正在使用 API 密钥。当我使用下面的 URL 时,一切正常,我得到了想要的结果:GET https://www.googleapis.com/youtube/v3/videos?id=i7KKDpmnR7U&key=YOUR_API_KEY=snippet,statistics,contentDetails
但是当我在本地尝试时,我无法在控制台中打印成功响应。我总是得到错误响应,因为得到 403 被禁止。当我们在本地环境中运行时有什么问题吗?或者 Api 有任何问题
缺少任何提示的东西会很棒!
我的代码
$scope.youtubeApi = function(videoId){
console.log('youtubeApi: ' + JSON.stringify(videoId));
if (videoId) {
//console.log('Youtube API Call function is called and Video is is : ' + videoId);
var API_KEY = "AIzaSyCmsmxLnAnDxwQ6wzzzHnLEGBt7X8ce94wI10A";
$http.get("https://www.googleapis.com/youtube/v3/videos?id="+ videoId + "&key=" + API_KEY + "&part=snippet,statistics,contentDetails").
success(function (data, status, headers, config) {
console.log('sucess call.' + JSON.stringify(data));
//$timeout(parseresults(data), 500);
//formObject(data);
}).
error(function (data, status, headers, config) {
console.log('Error while saving this Video Id details in rest.' + JSON.stringify(data));
console.log('Error while saving this Video Id details in rest.' + videoId);
});
}
}
控制台出错
{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"
}
],
"code": 403,
"message": "Forbidden"
}
}
只有当我尝试使用 $http.get() 方法在本地运行时才会出现错误。但是当我在浏览器窗口(@987654322@)上手动将 url 与 apikey 和 videoId 绑定时,在浏览器中得到了成功响应,即视频对象。
【问题讨论】:
-
对密钥有什么限制吗?通常,在使用 API 密钥时,您可以通过输入有效的 HTTP 引用/IP 地址/iOs 应用程序等来设置请求来自何处的限制
-
使用你的密钥seems to work fine
-
我建议进入您的控制台并更改您的 api 密钥。现在每个人都可以访问您的密钥。至于你的问题,乔治有一个有效的观点。您还可以查看本地开发设置,因为您可能需要更改一些限制。
标签: javascript angularjs youtube youtube-data-api