2017-10-14 102 views
0

我一直在努力实现Youtube的SearchByKeyword,因为我发现很难将几乎所有文档中使用的Java语言联系起来。我认为在Youtube上按关键字执行搜索

https://github.com/youtube/api-samples/blob/master/java/src/main/java/com/google/api/services/samples/youtube/cmdline/data/Search.java

是最相关的我想要什么,但我不能让它在所有的工作。我的困惑:

如何使用此搜索类?例如在按钮上单击?我不确定我可以调用的构造函数在哪里,并且放入了我想要搜索的关键字。
例如:在代码中的90行

String queryTerm = getInputQuery(); 

将调用
私人静态字符串getInputQuery()抛出IOException异常{

String inputQuery = ""; 

    System.out.print("Please enter a search term: "); 
    BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in)); 
    inputQuery = bReader.readLine(); 

    if (inputQuery.length() < 1) { 
     // Use the string "YouTube Developers Live" as a default. 
     inputQuery = "YouTube Developers Live"; 
    } 
    return inputQuery; 
} 

我想通过EditText.getText().toString()让我的关键字和从事搜索通过点击Button。这将返回给我一个结果列表,我可以使用ArrayAdapter进行查看。

我该怎么做?预先感谢任何帮助。我一直在寻找没有结果的日子的指导,有文件,但我不能将它们翻译成Android。请帮忙。

+0

您好,我有与YouTube API查询代码,它是不是你正在尝试做的方式,但如果你有兴趣,我可以分享。 –

+0

任何帮助是帮助!当然,我会尽力学习我能做的 –

回答

1

首先,这是你的endPoint = https://www.googleapis.com/youtube/v3/search?part=snippet&q=YOURKEYFORSEARCH&type=video&key=YOURAPIKEY;

private void yourQueryToYoutubeAPI(final String keyWord) {

final String yourApiKEY = "yourApiKey"; 
    final String endPoint = "https://www.googleapis.com/youtube/v3/search?part=snippet&q="+ keyWord+"&type=video&key=" + yourApiKEY; 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 

      Object jsonResponse = null; 

      try { 

       HttpClient httpclient = new DefaultHttpClient(); 
       HttpGet request = new HttpGet(); 

       request.setURI(new URI(endPoint)); 
       HttpResponse response = httpclient.execute(request); 
       InputStream content = response.getEntity().getContent(); 
       Reader reader = new InputStreamReader(content); 
       Gson gson = new Gson(); 
       jsonResponse = gson.fromJson(reader, HashMap.class); 

       //jsonRespose contains your query result you can see result with log for example 
       Log.i("jsonResponse", "jsonResponse: " + jsonResponse.toString()); 

       content.close(); 


      } catch (Exception e) { 
       e.printStackTrace(); 

      } 
     } 
    }).start(); 
}` 

这会给你如何使用API​​的早期想法,做测试及更多的测试。

你可以找到哪个阵营的位置检索的详细信息:https://developers.google.com/youtube/v3/docs/search/list?hl=en

额外的信息: 在每个查询的搜索领域,它的成本100 你有100万的初始限制你可以联系youtube当这个限制接近达成,但我不知道你是否将不得不支付。

你可以找到更多有关配额限制的位置: https://developers.google.com/youtube/v3/determine_quota_cost

+0

非常感谢配额。我直到现在才知道。我的代码出错了,'请求没有指定任何Android程序包名称或签名证书指纹。“我检查了我的软件包名称和SHA1证书,这是正确的。我已经创建了另一个API密钥并将限制设置为无,并且它工作。谢谢,但任何想法如何让它与限制工作? –

+0

我不知道,我也使用无限制的API密钥! –