Vous n'êtes pas connecté. Connexion
|
|
tp_web2De $1
TP : utilisation d’APIS de sites populaires du web 2.0
IntroductionBut du tp : créer un moteur de recherche faisant appel à différentes API du web. Vous commencerez par utiliser les APIs de YouTube au travers de l’API que ce dernier fournit. Vous complèterez ensuite votre application en associant également les services de FLickr pour récupérer en plus des vidéos correspondant à votre recherche, des images de flickr. Initialisation de l'application
<input type="text" name="query" id="query"/> <input type="button" value="Chercher" onclick="search();" /> <div id="search_results"> </div>
var req;
function search(start){
var query = document.getElementById("query"); var url = "search?query="+ query.value;
//try with Mozilla, opera, etc. if (window.XMLHttpRequest){ req = new XMLHttpRequest(); } //else IE else if (window.ActiveXObject){ req = new ActiveXObject("Microsoft.XMLHTTP"); } req.onreadystatechange = callback; req.open("GET",url,true); req.send(null); }
function callback(){ var div = document.getElementById('search_results'); if (req.readyState==4){ if (req.status == 200){ //it works: div.innerHTML = req.responseText; } else{ //problem: div.innerHTML = "research failed"; } } }
<script language="JavaScript" src="ajaxSearch.js"></script>
Voici le code de la servlet proposé pour la servlet :
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();
try { String searchTerms = request.getParameter("query"); out.write("<b>results for " + searchTerms + "<br/>"); YouTubeService service = new YouTubeService("gdataSample-YouTube-2"); YouTubeQuery query = new YouTubeQuery(new URL(VIDEOS_FEED));
query.setStartIndex(1); query.setMaxResults(20); query.setFullTextQuery(searchTerms);
VideoFeed videoFeed = service.query(query, VideoFeed.class); if (videoFeed != null) { for (VideoEntry ve : videoFeed.getEntries()) { YouTubeMediaGroup mediaGroup = ve.getMediaGroup();
if (mediaGroup != null) { String titre = ve.getTitle().getPlainText(); List<MediaThumbnail> thumbs = mediaGroup.getThumbnails(); ve.getEtag(); out.write("<div class=\"video\"><br/>"); out.write("<a href=\"" + ve.getHtmlLink().getHref() + "\" title=" + titre + "><img src=\"" + thumbs.get(0).getUrl() + "\"></a>"); out.write("<br/></div>");
} }
} } catch (Exception e) { e.printStackTrace(); } finally { out.close(); } } Ne pas oublier d’ajouter à votre projet les librairies de l’API YoutubePour que votre projet compile, il faut ajouter dans les bibliothèques du projet les fichiers .jar nécessaires. Il faut d’abord récupérer la librairie officielle de l’API youtube : http://code.google.com/p/gdata-java-client/ . Récupérez le dernier zip (cf image), dézippez le et ajoutez tous les jars dans un répertoire « lib » situé à la racine de votre projet eclipse ou netbeans.
Dans les propriétés de votre projet, ajoutez dans les librairies tous les jars situés dans le répertoire lib. Il vous faudra aussi les librairies « java mail » et « java beans activation framework». Récupérez-les sur : http://code.google.com/p/gdata-java-client/wiki/Dependencies et ajoutez les dans lib + dans les librairies de votre projet, comme précédemment.
Une fois les librairies dans le projet, vous pourrez ajouter les imports suivants :
import com.google.gdata.client.youtube.*; import com.google.gdata.data.Person; import com.google.gdata.data.extensions.Rating; import com.google.gdata.data.geo.impl.GeoRssWhere; import com.google.gdata.data.media.mediarss.MediaKeywords; import com.google.gdata.data.media.mediarss.MediaPlayer; import com.google.gdata.data.media.mediarss.MediaThumbnail; import com.google.gdata.data.youtube.*; import com.google.gdata.data.youtube.VideoFeed;
Ajouter quelques variables de classeDans votre servlet il vous faudra aussi quelques variables de classe :
// The name of the server hosting the YouTube GDATA feeds public static final String YOUTUBE_GDATA_SERVER = // The URL of the "Videos" feed public static final String VIDEOS_FEED = YOUTUBE_GDATA_SERVER + "/feeds/api/videos"; // The URL of the "Standard" feed public static final String STANDARD_FEED = YOUTUBE_GDATA_SERVER + "/feeds/api/standardfeeds/";
Travail à faire
API Flickr
API Facebook
|
Powered by MindTouch Deki Open Source Edition v.8.08 |