Все еще изучая Угловые, так что будьте осторожны. ;)
Я успешно получал результаты поиска, когда я впервые создал и добавил ключ API YouTube. Однако на следующий день он перестает работать и дает мне ошибку 401 с сообщением "Недопустимые учетные данные".
Я видел здесь несколько вопросов о том, чтобы добавить OAuth, но я не думаю, что это относится ко мне, поскольку я только ищу и воспроизвожу видео... не так ли?
Я использую этот проект в качестве руководства, и он работает отлично. Я не уверен, что я сделал по-другому.
Здесь мой контроллер с $http.get
для поиска.
var youtubeAPIKey = "AIzaSyA4EF_e56jFBfRPBx57wkzN2ppKudMcZvk";
$scope.search = function() {
$http.get('https://www.googleapis.com/youtube/v3/search', {
params: {
key: youtubeAPIKey,
type: 'video',
maxResults: '20',
part: 'id,snippet',
videoCategoryId: '10',
q: this.query
}
})
.success(function(data) {
console.log(data);
$scope.searchResults = data;
})
.error(function(err) {
console.log(err);
});
}
Не уверен, если это имеет значение, но вот поиск HTML
<div class="search-box">
<form ng-submit="search()">
<input type="search" placeholder="It your turn! Search for a song to add"
ng-model="query" />
</form>
</div>
<div class="search-results" ng-if="searchResults">
<ul>
<li class="list-item"
ng-repeat="result in searchResults.items"
ng-click="add(result.id.videoId, result.snippet.title)">
<div class="song-info">{{result.snippet.title}}</div>
<button class="player-btn glyphicon glyphicon-headphones"
ng-click="preview(result.id.videoId, result.snippet.title)">
</button>
<button class="player-btn glyphicon glyphicon-plus"></button>
</li>
</ul>
Изменение: Здесь ошибка:
error: Object
code: 401
errors: Array[1]
0: Object
domain: "global"
location: "Authorization"
locationType: "header"
message: "Invalid Credentials"
Сначала я бы проверил, что вы действительно можете сделать запрос через консоль RESTful (например, Postman), CURL или просто из браузера. Например, запустите из командной строки:
$ curl -XGET https://www.googleapis.com/youtube/v3/search?key=<API_KEY_HERE>\&part=id,snippet
или просто из браузера:
https://www.googleapis.com/youtube/v3/search?key=<API_KEY_HERE>&part=id,snippet
Это, по крайней мере, изолирует проблему с угловым или с конечной точкой/запросом.
https://www.googleapis.com/youtube/v3/search?key=AIzaSyA4EF_e56jFBfRPBx57wkzN2ppKudMcZvk&part=id,snippet&q=kanye
Я получаю сообщение об ошибке 403 с сообщением оThere is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.