2017-10-14 7 views
0

J'ai eu du mal à implémenter SearchByKeyword pour Youtube car je trouve difficile de relier le langage Java utilisé dans presque toute la documentation. Je pense queMettre en œuvre la recherche par mot-clé sur Youtube

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

est le plus pertinent pour ce que je veux, mais je ne peux pas le faire fonctionner du tout. Ma confusion:

Comment puis-je engager ce cours de recherche? Par exemple sur un bouton cliquez? Je ne suis pas sûr où est le constructeur que je peux appeler et mettre dans les mots-clés que je veux rechercher.
Par exemple: Dans la ligne 90 du code

String queryTerm = getInputQuery(); 

appellera
statique private String getInputQuery() throws 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; 
} 

Je veux obtenir mes mots-clés à travers EditText.getText().toString() et engager la recherche en cliquant sur un Button. Ce qui me retournera une liste de résultats que je peux utiliser un ArrayAdapter pour être vu.

Comment procéder? Merci d'avance pour toute aide. J'ai cherché des conseils pour des jours sans résultat, il y a des documentations mais je ne peux pas les traduire en Android. S'il vous plaît aider.

+0

Bonjour, J'ai un code de requête avec youtube api, ce n'est pas la façon dont vous essayez de faire, mais je peux partager si vous avez intérêt. –

+0

Toute aide est utile! Bien sûr, je vais essayer d'apprendre ce que je peux –

Répondre

1

Tout d'abord c'est votre point de terminaison = 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(); 
}` 

cela vous donnera une idée rapide de la façon d'utiliser api, faire des tests et d'autres tests.

vous pouvez trouver plus d'informations sur lesquelles les camps sont consultables ici: https://developers.google.com/youtube/v3/docs/search/list?hl=en

informations supplémentaires: à chaque requête pour le champ de recherche, il en coûte 100 vous avez une limite initiale de 1000000 vous peut contacter YouTube quand cette limite est proche d'être atteinte, mais je ne suis pas sûr si vous devrez payer pour cela.

vous pouvez trouver plus sur la limite de quota ici: https://developers.google.com/youtube/v3/determine_quota_cost

+0

Merci beaucoup pour le quota. Je n'ai jamais su jusqu'à maintenant. J'ai reçu une erreur pour le code: "La requête ne spécifiait aucun nom de package ou empreinte de certificat de signature Android". J'ai vérifié mon nom de paquet et mon certificat SHA1, qui sont corrects. J'ai créé une autre clé API et défini les restrictions sur none et cela a fonctionné. Merci, mais aucune idée de comment le faire fonctionner avec des restrictions? –

+0

Je n'en ai aucune idée, j'utilise aussi une clé api sans restriction! –