我一直在尝试开发一个应用程序,该应用程序将返回关键字的第一个视频结果(以及获取其内容详细信息)。在一个会话中多次执行此操作(比如说30次)。如果我所做的只是每次都从1个结果中读取数据(来自their docs的“计算配额使用情况”部分),那为什么我几次测试运行就用完了全部10,000个每日单位我的申请?
这是我的特定代码:
private class GetVideoDuration extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
String sURL = "https://www.googleapis.com/youtube/v3/videos?id=" + params[0] + "&part=contentDetails&key=" + API_KEY;
String var = null;
try {
// Connect to the URL using java's native library
URL url = new URL(sURL);
URLConnection request = url.openConnection();
request.connect();
// Convert to a JSON object to print data
JsonParser jp = new JsonParser(); //from gson
JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent())); //Convert the input stream to a json element
Log.d("rootJSON", root.toString());
Log.d("urlJSON", url.toString());
JsonObject video = null;
try {
video = root.getAsJsonObject().get("items").getAsJsonArray().get(0).getAsJsonObject().get("contentDetails").getAsJsonObject();
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
Log.e("Chief", "It looks like we've exceeded our quota for the day :(");
}
var = video.get("duration").getAsString();
} catch (IOException e) {
e.printStackTrace();
// contDets = contentDetails
Log.d("Error parsing contDets", e.getMessage());
ERROR_STATE = true;
}
return var;
}
}
我知道可以申请更高的配额,但这似乎是有问题的。任何帮助将不胜感激。