首页 > 解决方案 > 使用 YouTube 数据 API 时,YouTube 数据 API 凭据不起作用

问题描述

我使用 YouTube 数据 API 使我为客户制作的基于 Web 的客户端能够连接到 youtube 并列出她帐户中的视频。在客户将这些服务闲置 90 天后取消凭据之前,这一直运行良好。

我创建了一个新凭据,但现在它不起作用,我无法找出解决方案。客户端使用 OAuth 授权,然后执行 YouTube Youtube.Search.list

try{
                youtube = getYouTubeService(XXXXXX);
            }catch(NullPointerException e){
                throw new BasicException("You must connect this system to YouTube before you can load videos.  You may do this in Settings.");
            }

HashMap<String, String> parameters = new HashMap<String,String>();
parameters.clear();
            parameters.put("part", "id,snippet");
            parameters.put("forMine", "true");

            parameters.put("type", "video");
            parameters.put("maxResults", "50");

            YouTube.Search.List searchListMineRequest = youtube.search().list(parameters.get("part").toString());
            if (parameters.containsKey("maxResults")) {
                searchListMineRequest.setMaxResults(Long.parseLong(parameters.get("maxResults").toString()));
            }
 if (parameters.containsKey("forMine") && parameters.get("forMine") != "") {
                boolean forMine = (parameters.get("forMine") == "true") ? true : false;
                searchListMineRequest.setForMine(forMine);
            }
if (parameters.containsKey("type") && parameters.get("type") != "") {
                searchListMineRequest.setType(parameters.get("type").toString());
            }

            SearchListResponse response = searchListMineRequest.execute();

产生问题的是执行命令。用户在程序的另一部分使用 OAuth 进行连接,并存储刷新令牌以供上述代码使用。我是 google api 的新手,所以如果我弄错了一些代码,请原谅。我收到 403 错误。但是,由于代码在凭证被取消之前有效,因此我得出结论认为问题出在新凭证上。

我收到以下错误消息:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "usageLimits",
    "message" : "Access Not Configured. YouTube Data API has not been used in project XXXXXXXXXX before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=XXXXXXXXXX then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.",
    "reason" : "accessNotConfigured",
    "extendedHelp" : "https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=XXXXXXXXXXXXX"
  } ],
  "message" : "Access Not Configured. YouTube Data API has not been used in project X before or it is disabled. Enable it by visiting.......
}

标签: youtube-data-api

解决方案


我找到了解决方案。一旦项目凭证达到 90 天,我的 google 控制台项目就不再是一个正常运行的项目。有些事情会奏效,有些则不会。我不得不完全删除该项目,再次连接 youtube 数据 API 并颁发新的凭据。这解决了问题。


推荐阅读