Comment utiliser Bing Search dans vos applications

Ces derniers jours, lors de mon développement, j’ai été amené à implémenter une recherche dans mon application. J’ai donc entamé quelque recherche à ce sujet et j’ai décidé d’utiliser Bing Search. J’ai été agréablement surpris de la simplicité de mise en place et d’utilisation de ce service. Je vais vous expliquer comment le mettre en place. La première étape est de se créer une clé pour l’api de bing. Pour se faire, rendez-vous sur la page : http://www.bing.com/developers/default.aspx . Une fois sur cette page, loguez vous avec votre LIVE ID grâce au bouton “Sign in”. Il vous reste donc maintenant à cliquer sur “Get started by applying for an AppID now.”. Une foi les champs complétés et les Terms of use approuvé, cliquez sur “Agree” et vous obtiendrez vos clé API.

Maintenant ajoutons une référence à BingService dans notre application. Faites un clique droit sur votre projet et choisissez “Add Service Reference”. Ceci fait, une fenêtre va s’ouvrir. Renseignez l’adresse suivante dans “Adress” : http://api.search.live.net/search.wsdl?Appid=VOTRECLEAPI . Ensuite, cliquez sur GO. Dans “Services” devrait alors s’afficher BingService. Renseignez maitenant un nom de namespace (ex : BingService) et cliquez sur OK.

Maintenant, créez le code votre interface. Je vous mets le code du pivot IMAGE de mon application. Je vous passe les explications, c’est une listbox très simple (voir screen pour le résultat)


Ce code vous donnera donc ceci : Passons donc maintenant au chose intéressante, c’est à dire le code qui sera exécuté au click du bouton “GO”.

 private void LaunchSearchImage() { BingPortTypeClient clientImage = new BingPortTypeClient(); SearchRequest request = new SearchRequest(); //Renseignemet obligatoire request.AppId = APIKEY; //Par exemple : APIKEY = "AD862B3DA164DE3A642C43E87569276ED2E52FCB" request.Sources = new SourceType[] { SourceType.Image }; //Ce que l'on veut rechercher (on peut rechercher plusieurs sources en même temps) request.Query = _searchBox.Text; //Notre texte recherché //Renseignement optionel request.Image = new ImageRequest(); request.Image.Count = 40; //Nombre d'élément que l'on veut récupérer request.Image.CountSpecified = true; clientImage.SearchCompleted += new System.EventHandler(clientImage_SearchCompleted); clientImage.SearchAsync(request); }

Je pense que le code est vraiment assez simple et les commentaires suffisent pour le comprendre. Pour finir, on va donc récupérer les images et les afficher dans notre application

 void clientImage_SearchCompleted(object sender, SearchCompletedEventArgs e) { SearchResponse response = e.Result; ImageResponse imageResponse = e.Result.Image; _resultListBox.Items.Clear(); //On nettoi notre listbox if (response.Image.Results != null) { //On va parcourir notre liste de résultat pour récupérer les images. foreach (ImageResult bingImage in response.Image.Results) { Image image = new Image(); image.Source = new BitmapImage(new Uri(bingImage.Thumbnail.Url)); image.Stretch = System.Windows.Media.Stretch.UniformToFill; image.Margin = new System.Windows.Thickness(5); image.Width = 200; image.Height = 200; _resultListBox.Items.Add(image); //On ajoute l'image créé à notre listbox. } } else MessageBox.Show("Aucun résultats"); }

Et voila ! Vous avez mis en place une recherche avec bing search ! Je trouve vraiment que c’est très simple à mettre en place et vraiment très propre. J’espère que ce tutoriel vous aidera. Si vous avez un problème, je mets les sources de l’exemple ci dessous. (Attention, n’utilisez pas la clé API qui se trouve dans cet exemple pour votre application 😉 )

No Comments

Post a Comment