Angular / YouTube API v3:401搜索时出现无效的凭据错误

时间:2015-12-13 03:18:22

标签: javascript angularjs api youtube youtube-api

还在学习Angular,所以请保持温柔。 ;)

我在第一次创建并添加了YouTube API密钥时成功获得了搜索结果。但是,第二天它停止工作并给出了401错误,并显示“无效凭据”消息。

我在这里看到了一些关于必须添加OAuth的问题,但我不认为这适用于我,因为我只是在搜索和播放视频......对吗?

我一直在使用this project作为指导,它运作得很好。我不确定我的做法有多么不同。

这是我的控制器,$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's 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"

1 个答案:

答案 0 :(得分:0)

我首先会检查您是否可以通过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

这至少可以确定问题是使用角度还是使用端点/请求。