youtube-data-api - 使用 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.......
}
解决方案
我找到了解决方案。一旦项目凭证达到 90 天,我的 google 控制台项目就不再是一个正常运行的项目。有些事情会奏效,有些则不会。我不得不完全删除该项目,再次连接 youtube 数据 API 并颁发新的凭据。这解决了问题。
推荐阅读
- python - 最频繁连续数算法的起始索引
- vue.js - 如何使用具有存储调度功能的 vue-test-utils 和 jest 在组件中为 Vue 方法编写 Vue 测试用例
- office-ui-fabric - 为什么 Office UI Fabric 中有多个版本的日期时间控件?
- r - 将列组合成列表列
- apache-spark - pyspark - 从结构中获取第一个非空属性
- apache-kafka - 有没有办法知道kafka connect sink写了多少条记录?
- javascript - 使用 face-api.js 和 Photoshop 时出现问题
- ios - 多次触发时,我的软键盘上的高度会发生变化
- python - 当我包含 PIL 导入时,Pyinstaller 会创建大型 EXE 文件
- performance - OAuth PKCE 和 Visual Studio 负载测试的问题