Prise en main de l'API de recherche: recherche d'éléments par mots clés

Prise en main de l'API de recherche: recherche d'éléments par mots clés

Ce didacticiel montre à quel point il est facile d'utiliser l'API Finding. Le tutoriel vous montre comment créer une application PHP simple qui soumet un findItemsByKeywords appelez pour rechercher des annonces eBay sur la base d'une requête par mot clé. Le code construit un appel HTTP GET au format URL qui renvoie une réponse XML. Le programme PHP analyse la réponse XML et construit une page HTML simple qui montre les résultats de la recherche.

Après avoir terminé le didacticiel, vous aurez une application qui affiche une page HTML semblable à la suivante lors de son exécution:

Premiers pas avec l'API Finding

Pour des notes sur le didacticiel, des ressources supplémentaires et des suggestions pour les étapes suivantes, veuillez consulter Notes et prochaines étapes.

Contenu de ce didacticiel

Ce didacticiel contient les sections suivantes:

Retour au sommet

Code source complet

Le code complété est fourni sous forme de fichier ZIP téléchargeable, GettingStarted_PHP_NV_XML.zip. Pour exécuter le programme, vous devez remplacer les instances de "MyAppID" dans le code du didacticiel par votre AppID de production.

Retour au sommet

Avant que tu commences

Il existe quelques conditions préalables pour terminer ce didacticiel:

  • Rejoignez le programme des développeurs eBay et obtenez vos clés d'accès.

    L'adhésion est gratuite et vous recevez 5 000 appels d'API par jour juste pour vous inscrire! Lorsque vous générez vos clés d'application à partir de votre Page Mon compte, notez votre Production AppID afin de pouvoir le remplacer dans ce didacticiel où il est indiqué "MyAppID". Le programme de ce didacticiel appelle le site de production eBay et utilise des données de production en direct.

  • Installer Serveur HTTP Apache.

    Apache HTTP Server est un serveur Web populaire, capable d'exécuter des applications PHP. Apache est facile à installer et à configurer. Les étapes de ce didacticiel sont écrites avec l'hypothèse que vous utilisez Apache. PHP est cependant compatible avec la plupart des serveurs Web populaires, donc Apache n'est pas strictement requis. Le code du didacticiel doit s'exécuter sur n'importe quel serveur Web configuré pour prendre en charge PHP.

  • Installer PHP 5.

    Le code de ce tutoriel est écrit en PHP. PHP 5 inclut le Extension SimpleXML, requis pour ce didacticiel.

Retour au sommet

Étape 1: configurer l'appel API

Dans cette étape, vous configurez le code PHP de base pour construire la demande d'API et le code HTML pour afficher les résultats.

Pour créer le code initial de votre appel d'API Finding:

  1. Créez un nouveau fichier PHP, MySample.php, avec le code suivant:
    
    
    
    
    eBay Search Results for <?php echo $query; ?>
    
    
    

    eBay Search Results for

    Enregistrez le fichier sous MySample.php dans le répertoire DocumentRoot de votre installation Apache (par exemple, C:Program FilesApache Software FoundationApache2.2htdocs). Le fichier comprend le conteneur PHP () où vous ajouterez le code pour effectuer une demande d'API et analyser la réponse. Il inclut également le code HTML pour afficher les données analysées à partir de la réponse XML.

  2. Planifiez les valeurs de la findItemsByKeywords Paramètres d'entrée.
    Paramètre standardExemple de valeurLa description
    NOM D'OPÉRATIONfindItemsByKeywordsLe nom de l'appel que vous utilisez. Ceci est codé en dur pour findItemsByKeywords à l'étape suivante.
    VERSION DE SERVICE1.0.0La version d'API prise en charge par votre application.
    SECURITY-APPNAMEMyAppIDL'AppID que vous obtenez par rejoindre le
    Programme des développeurs eBay
    .
    GLOBAL-IDEBAY-USLe site eBay que vous souhaitez rechercher. Par exemple, le site eBay américain (EBAY-US) ou le site eBay Allemagne (EBAY-DE).

    Paramètre spécifique à l'appelExemple de valeurLa description
    mots clésHarry PotterLa chaîne de mots que vous souhaitez associer aux informations sur les objets eBay, telles que les titres. le $safequery La variable (ajoutée à l'étape suivante) encodera vos mots clés de requête par URL pour remplacer les espaces et les caractères spéciaux afin que la requête fonctionne dans une requête URL.
    paginationInput.entriesPerPage3Nombre maximal d'éléments à renvoyer dans la réponse. Ceci est codé en dur comme 3 dans le code du programme.

  3. Ajoutez le code pour construire la demande d'API.

    Ce code contient les éléments suivants:

    • Le niveau de rapport d'erreurs pour le programme.
    • Variables de demande d'API pour les valeurs des paramètres d'entrée de l'étape précédente, y compris les mots-clés de requête et votre AppID
    • Variable d'appel API, $apicall, construit avec les valeurs des variables déclarées
    Remarque: Vous devez remplacer la valeur "MyAppID" pour le $appid variable avec votre Production AppID. Récupérez votre AppID depuis votre Page Mon compte.

    Entrez le code suivant dans les balises PHP ( en haut du fichier.

    error_reporting(E_ALL);  // Turn on all errors, warnings and notices for easier debugging
    
    // API request variables
    $endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1';  // URL to call
    $version = '1.0.0';  // API version supported by your application
    $appid = 'MyAppID';  // Replace with your own AppID
    $globalid = 'EBAY-US';  // Global ID of the eBay site you want to search (e.g., EBAY-DE)
    $query = 'harry potter';  // You may want to supply your own query
    $safequery = urlencode($query);  // Make the query URL-friendly
    
    // Construct the findItemsByKeywords HTTP GET call
    $apicall = "$endpoint?";
    $apicall .= "OPERATION-NAME=findItemsByKeywords";
    $apicall .= "&SERVICE-VERSION=$version";
    $apicall .= "&SECURITY-APPNAME=$appid";
    $apicall .= "&GLOBAL-ID=$globalid";
    $apicall .= "&keywords=$safequery";
    $apicall .= "&paginationInput.entriesPerPage=3";
    
  4. Remplacer MyAppID dans le code de variables de demande d'API avec votre Production AppID.

    Important: Ce didacticiel utilise le point de terminaison de production pour l'API Finding, vous devez donc utiliser votre AppID de production pour que l'application fonctionne. La demande échouera si un Sandbox AppID est utilisé.

    $appid = 'MyAppID';  // Replace with your own AppID
    

Le code du didacticiel n'est pas encore prêt à être exécuté. Passez à l'étape suivante pour ajouter le code qui soumet la demande d'API et analyse la réponse.

Retour au sommet

Étape 2: ajouter du code pour analyser et afficher la réponse à l'appel

Dans cette étape, vous allez ajouter du code à stocker, puis afficher les éléments retournés.

Voici l'URL utilisée pour votre appel Finding API, comme décrit à l'étape 1:

http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=MyAppID&GLOBAL-ID=EBAY-US&keywords=harry+potter&paginationPputInput.entriesP

Les données de réponse sont renvoyées au format XML par défaut.

Dans cette étape, vous ajouterez du code pour analyser la réponse à l'appel et afficher les éléments retournés.

  1. Ajoutez du code PHP pour analyser la réponse d'appel de l'API et écrivez le code HTML pour afficher les résultats.

    Le code PHP suivant crée des lignes à ajouter au tableau HTML dans le corps HTML du MySample.php fichier. Le code parcourt le tableau des éléments dans les résultats de la recherche, en ajoutant une nouvelle ligne au tableau pour chaque élément. Chaque ligne se compose de l'image et du titre de la galerie de l'élément. Le titre renvoie à la page Afficher l'élément de l'élément.

    Ajoutez le code suivant juste après la dernière ligne du $apicall variable ($apicall .= "&paginationInput.entriesPerPage=3";).

    // Load the call and capture the document returned by eBay API
    $resp = simplexml_load_file($apicall);
    
    // Check to see if the request was successful, else print an error
    if ($resp->ack == "Success") {
      $results = '';
      // If the response was loaded, parse it and build links
      foreach($resp->searchResult->item as $item) {
        $pic   = $item->galleryURL;
        $link  = $item->viewItemURL;
        $title = $item->title;
    
        // For each SearchResultItem node, build a link and append it to $results
        $results .= "$title";
      }
    }
    // If the response does not indicate 'Success,' print an error
    else {
      $results  = "

    Oops! The request was not successful. Make sure you are using a valid "; $results .= "AppID for the Production environment.

    "; }
  2. Sauver le MySample.php fichier.

Ce fichier est maintenant exécutable, mais nous n'avons pas encore terminé. Passer à Étape 4 pour voir à quoi il ressemble, ou passez à l'étape suivante pour ajouter des filtres d'élément à la demande.

Retour au sommet

Étape 3: insérer un tableau indexé de filtres d'élément

Cette étape ajoute des filtres d'articles à votre demande. Cela se fait en créant d'abord un tableau PHP des filtres d'élément. Une fonction utilise ensuite ce tableau pour créer un extrait de format d'URL indexé à utiliser dans la demande d'URL. Chaque fois que vous utilisez des champs extensibles dans une demande au format URL, vous devez indexer les champs pour qu'ils soient correctement traités.

Vous pouvez réutiliser cette fonction ou une fonction similaire pour traiter les filtres d'élément soumis via un formulaire Web.

  1. Créez un tableau PHP de filtres d'éléments.

    Ajoutez le tableau suivant après les déclarations de variables (c'est-à-dire après la ligne commençant par $safequery). Ce tableau contient trois filtres d'élément: MaxPrice, FreeShippingOnly et ListingType.

    // Create a PHP array of the item filters you want to use in your request
    $filterarray =
      array(
        array(
        'name' => 'MaxPrice',
        'value' => '25',
        'paramName' => 'Currency',
        'paramValue' => 'USD'),
        array(
        'name' => 'FreeShippingOnly',
        'value' => 'true',
        'paramName' => '',
        'paramValue' => ''),
        array(
        'name' => 'ListingType',
        'value' => array('AuctionWithBIN','FixedPrice'),
        'paramName' => '',
        'paramValue' => ''),
      );
    
  2. Ajoutez une fonction pour créer un tableau de filtres d'éléments indexés à utiliser avec une demande d'URL.

    Cette fonction analyse le tableau de filtres d'élément, formate les filtres en tant que paramètres d'URL indexés et attribue leur valeur collective à une variable, $urlfilter.

    Ajoutez le code suivant directement après le tableau ajouté à l'étape précédente ($filterarray = array( ... );).

    // Generates an indexed URL snippet from the array of item filters
    function buildURLArray ($filterarray) {
      global $urlfilter;
      global $i;
      // Iterate through each filter in the array
      foreach($filterarray as $itemfilter) {
        // Iterate through each key in the filter
        foreach ($itemfilter as $key =>$value) {
          if(is_array($value)) {
            foreach($value as $j => $content) { // Index the key for each value
              $urlfilter .= "&itemFilter($i).$key($j)=$content";
            }
          }
          else {
            if($value != "") {
              $urlfilter .= "&itemFilter($i).$key=$value";
            }
          }
        }
        $i++;
      }
      return "$urlfilter";
    } // End of buildURLArray function
    
    // Build the indexed item filter URL snippet
    buildURLArray($filterarray);
    
  3. Ajoutez une déclaration de variable pour l'index de filtre d'élément pour initialiser sa valeur à 0.

    Ajoutez la ligne suivante à la section variable en haut du fichier directement après la $safequery entrée.

    $i = '0';  // Initialize the item filter index to 0
    
  4. Ajoutez la variable pour les filtres d'élément à la fin du code utilisé pour construire l'appel d'API.

    Ajoutez la ligne suivante à la fin du $apicall , directement après la ligne qui ajoute la pagination à l'appel ($apicall .= "&paginationInput.entriesPerPage=3";).

    $apicall .= "$urlfilter";
    
  5. Sauver le MySample.php fichier.

le MySample.php le fichier est complet! Passez à l'étape suivante pour voir les résultats.

Retour au sommet

Étape 4: exécutez le code

Ouvrez le fichier dans un navigateur (http: //localhost/MySample.php).

Le résultat devrait ressembler à ce qui suit:

Premiers pas avec l'API Finding "width =" 689 "height =" 471

Toutes nos félicitations! Vous avez utilisé l'API Finding pour rechercher des objets sur eBay et afficher les résultats de la recherche à un utilisateur.

Pour plus d'informations sur les avantages commerciaux de l'utilisation du programme des développeurs eBay et pour d'autres informations importantes, veuillez consulter le Page Avantages commerciaux.

Retour au sommet

Notes et prochaines étapes

Cette section contient des notes sur le didacticiel et des suggestions.

eBay Partner Network (Programme d'affiliation eBay)

Vous pouvez gagner de l'argent avec le réseau de partenaires eBay (programme d'affiliation eBay)! Envoyez des utilisateurs sur eBay et gagnez de l'argent pour les nouveaux utilisateurs actifs (ACRU) et les transactions réussies. Pour plus d'informations, visitez le Réseau de partenaires eBay. Ce didacticiel contient du code affilié. Le code est mis en commentaire car la fonctionnalité d'affiliation n'est pas disponible dans l'environnement Sandbox.

Pour plus d'informations sur les paramètres d'URL pour le suivi des affiliés, consultez le Suivi des affiliés dans le Guide de l'utilisateur Finding API.

À propos de l'application

L'exemple fourni avec ce didacticiel a été créé et testé sur une plate-forme Windows utilisant PHP 5.3 pour Win32 et Apache 2.2.4 pour Windows.

À propos de l'appel

Ce tutoriel est basé sur le findItemsByKeywords appel. Voir findItemsByKeywords dans le Référence API pour une description de tous les paramètres d'entrée et de sortie, des exemples d'appels et d'autres informations.

Si vous souhaitez que votre application affiche la demande d'URL assemblée qui est envoyée à eBay, ajoutez le code PHP / HTML suivant juste avant la balise de fermeture (c'est-à-dire,):

API request used (click URL to view XML response):

Vous pouvez facilement adapter ce code de didacticiel à d'autres appels d'API Finding en modifiant la valeur de OPERATION-NAME à l'appel que vous souhaitez utiliser. Notez que findItemsByCategory et findItemsByProduct ne supporte pas mots clés comme entrée.

Et après

Voici quelques suggestions de façons de modifier ou d'étendre le code du didacticiel pour en savoir plus sur l'API et créer une application plus intéressante:

  • Modifiez les mots clés de votre requête pour voir comment la sortie est effectuée
  • Modifier l'application pour afficher des champs supplémentaires
  • Essayez différents paramètres d'entrée, tels que ordre de tri, pour contrôler les résultats
  • Ajouter des filtres d'élément supplémentaires ou différents
  • Remplir par programme le tableau de filtres d'élément à partir de l'interaction avec l'interface utilisateur
  • Adapter le tableau de filtres d'éléments et la fonction d'indexation de tableaux à utiliser avec les filtres d'aspect

Retour au sommet

Ressources supplémentaires

Plus d'informations sur l'API Finding sont disponibles à ces emplacements:

Retour au sommet

Copyright © 2009–2016 eBay, Inc. Tous droits réservés. Cette documentation et l'API ne peuvent être utilisées que conformément au programme des développeurs eBay et au contrat de licence API.

URL: http://tinyurl.com/ro4rp3x

Comments are closed.