Bonjour gars! Je suis ravi d'écrire mon premier article pour WPKube et aujourd'hui, je vais vous parler de l'API Marketplaces d'Envato. Envato est la plus grande et, à mon avis, peut-être l'une des sociétés en ligne les plus pertinentes aujourd'hui en ce qui concerne les articles WordPress premium. Avec Themeforest.net qui compte actuellement plus de 4000 thèmes WordPress premium et Codecanyon.net avec plus de 2500 plugins WordPress, l'interaction avec les marchés est devenue encore plus importante pour les annonceurs ces derniers temps.

Heureusement, Envato permet et encourage cette forme d'interaction via son API Marketplaces. Vous pouvez consulter la documentation officielle ici; http://extras.envato.com/api/. Dans cet article, je vais couvrir le côté public de cette API, y compris comment l'utiliser et vous fournir un extrait utile que vous pouvez personnaliser et déposer directement dans vos propres projets. À la fin, je partagerai également mes 4 principaux canaux de données dans l'API, en vous montrant comment les utiliser et quelles données ils renverront. Veuillez noter qu'une connaissance de base de l'utilisation des objets PHP sera requise. Prêt? Commençons alors.

La différence entre les API publiques et privées

Il y a deux côtés à l'API Envato Marketplaces. Le premier est l'ensemble public (dont je parlerai dans cet article) et l'autre est l'ensemble privé. La principale différence entre eux est le fait que le privé nécessite une clé API valide. Découvrez les autres différences ci-dessous;

  • Publique:
    • N'est-ce pas nécessite une clé API.
    • Renvoie des données générales/publiques telles que ;
      1. Le nombre de fichiers actuellement disponibles sur une place de marché.
      2. Les détails d'un article (tels que le prix, etc.).
      3. Informations publiques sur l'utilisateur (telles que le nombre de ventes/d'abonnés, l'URL de l'image de profil, l'emplacement, etc.)
      4. Données de recherche – cela effectue une requête de recherche sur l'un des sites et renvoie les 50 premiers éléments.
      5. Fichiers populaires sur un marché.
      6. Fichiers en vedette sur un marché.
      7. Nouveaux fichiers sur une place de marché.
  • Privé:
    • Utilisé pour renvoyer des informations sécurisées, telles que votre solde et vos revenus.
    • Peut être utilisé pour ;
      1. Renvoyez les 100 derniers éléments de votre relevé.
      2. Vérifiez l'achat de votre article (cela nécessite la clé d'achat de votre client).
      3. Téléchargez un fichier que vous avez acheté.

Je n'ai énuméré que quelques-uns des plus utiles ci-dessus, mais il y en a beaucoup plus. Lis le Documentation pour en savoir plus.

Le code

Plongeons tête première ! La structure de tout notre code dans ce tutoriel sera très similaire ; nous utiliserons PHP cURL pour récupérer les données JSON de l'API, que nous convertirons ensuite en objet PHP et que nous utiliserons. Vous trouverez ci-dessous un exemple de l'anatomie de base de nos fonctions (cette fonction particulière renverra toutes les catégories CodeCanyon avec le nombre de fichiers dans chacune) ;


function number_of_files_codecanyon() {
// Open cURL channel
$ch = curl_init();

// Set cURL options
curl_setopt($ch, CURLOPT_URL, "http://marketplace.envato.com/api/edge/number-of-files:codecanyon.json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Decode returned JSON
$output = json_decode(curl_exec($ch), true);

// Close Channel
curl_close($ch);

// Return output
return $output;
}

Lorsque nous examinerons les utilisations spécifiques plus tard, il vous suffira de modifier l'URL de la ligne 6 en fonction de vos besoins. Pour afficher ces données, nous devons les imprimer à l'écran (comme il s'agit d'un objet PHP, assurez-vous d'utiliser print_r et pas écho). Vous trouverez ci-dessous un exemple de la façon d'imprimer la sortie de notre fonction ainsi que la sortie d'écran ;


echo '<pre>';
print_r( number_of_files_codecanyon() );
echo '</pre>';

Sortir (ne vous souciez pas de l'apparence pour l'instant, nous manipulerons les données plus tard) ;


stdClass Object
(
[number-of-files] => Array
(
[0] => stdClass Object
(
[category] => JavaScript
[number_of_files] => 1402
[url] => http://codecanyon.net/category/javascript
)

[1] => stdClass Object
(
[category] => PHP Scripts
[number_of_files] => 2096
[url] => http://codecanyon.net/category/php-scripts
)

[2] => stdClass Object
(
[category] => .NET
[number_of_files] => 132
[url] => http://codecanyon.net/category/net
)

. . . etc . . .

… Et voici un exemple de la façon dont vous pourriez appeler et utiliser les données de l'objet.


// Retrieve data from function
$json_data = number_of_files_codecanyon();

// Count number of array items (-1 as the object is zero-based)
$data_count = count($json_data['number-of-files']) -1;
 
// Output as list   
echo '<ul>';

// Echo code for every category
for($i = 0; $i <= $data_count; $i++) {
 // Retrieve and print data
 echo '<li><a href="'.$json_data['number-of-files'][$i]['url'].'">',$json_data['number-of-files'][$i]['category'],'</a> - ',$json_data['number-of-files'][$i]['number_of_files'],'</li>';
}
echo '/<ul>';

Cela renverra le code HTML suivant ;

Voilà pour les bases ! Voyons maintenant quelques-unes des utilisations spécifiques.

Bien que je ne vais pas passer en revue tous les canaux de données possibles ici, ils sont tous expliqués dans le Documentation API.

Mes 4 canaux de données les plus utiles

  1. Récupérer les données de l'article ; URL : http://marketplace.envato.com/api/edge/item :{ ITEM_ID }.json Le paramètre ‘ITEM_ID' accepte un nombre entier. Cela correspond à l'identifiant unique donné à un produit par Envato. Cela renverra les données JSON suivantes ;
    
    Array
    (
    [item] => Array
    (
    [id] => 5850316
    [item] => TCWP – Supercharged Twitter Card Management for WP
    [url] => http://codecanyon.net/item/tcwp-supercharged-twitter-card-management-for-wp/5850316
    [user] => InfinityCode
    [thumbnail] => http://3.s3.envato.com/files/87961812/TCWPLogo.png
    [sales] => 13
    [rating] => 5.0
    [rating_decimal] => 5.00
    [cost] => 18.00
    [uploaded_on] => Mon Oct 14 18:16:01 +1100 2013
    [last_update] => Fri May 02 05:47:29 +1000 2014
     => cards, customer, embed, integration, meta, outreach, photo, player, product, seo, social, social media, summary, twitter, twitter cards
    [category] => wordpress/social-networking
    [live_preview_url] => http://1.s3.envato.com/files/89907849/TCWPHeader.jpg
    [live_preview_video_url] => http://0.s3.envato.com/files/90359042/TCWPVideoPreview720p.mp4
    )
    
    )
    
  2. Récupérer l'article en vedette (et le fichier gratuit du mois) ; URL : http://marketplace.envato.com/api/edge/features :{ MARKETPLACE_NAME }.json Le paramètre “MARKETPLACE_NAME” accepte une chaîne. Cela correspond au nom en minuscule du marché à interroger, par exemple. ‘codecanyon', ‘activeden' etc. Cela renverra les données JSON suivantes ;
    
    Array
    (
    [features] => Array
    (
    [featured_file] => Array
    (
    [id] => 7157644
    [item] => FlatAds - Classified AdsWordPress Theme
    [url] => http://themeforest.net/item/flatads-classified-adswordpress-theme/7157644
    [user] => Themes-Dojo
    [thumbnail] => http://2.s3.envato.com/files/90383318/80x80.jpg
    [sales] => 200
    [rating] => 4.0
    [rating_decimal] => 3.80
    [cost] => 55.00
    [uploaded_on] => Sun Mar 23 15:13:01 +1100 2014
    [last_update] => Sun May 04 23:02:49 +1000 2014
     => ads, advertising, bbpress, business, classified, classified ads, corporate, database, directory, listing, marketing, portal, responsive, woocommerce, wpml
    [category] => wordpress/corporate/directory-listings
    [live_preview_url] => http://2.s3.envato.com/files/90383319/images/01_preview.__large_preview.jpg
    )
    
    [featured_author] => Array
    (
    [id] => 379972
    [user] => biyanpasau
    [url] => http://themeforest.net/user/biyanpasau
    [thumbnail] => http://2.s3.envato.com/files/63718853/ava.png
    )
    
    [free_file] => Array
    (
    [id] => 4114650
    [item] => Emotion - Responsive HTML5/CSS3 Template
    [url] => http://themeforest.net/item/emotion-responsive-html5css3-template/4114650
    [user] => dan_fisher
    [thumbnail] => http://0.s3.envato.com/files/58994756/thumb.jpg
    [sales] => 101
    [rating] => 5.0
    [rating_decimal] => 5.00
    [cost] => 15.00
    [uploaded_on] => Tue Feb 26 08:23:51 +1100 2013
    [last_update] => Wed Jun 12 21:58:55 +1000 2013
     => blog, creative, css3, emotion, flexible, green, html5, minimal, modern, multipurpose, perfect, professional, responsive, slider
    [category] => site-templates/creative/portfolio
    [live_preview_url] => http://2.s3.envato.com/files/58994760/preview.__large_preview.jpg
    )
    
    )
    
    )
    
  3. Récupérer des articles populaires ; URL : http://marketplace.envato.com/api/edge/popular :{ MARKETPLACE_NAME }.json Le paramètre “MARKETPLACE_NAME” accepte une chaîne. Cela correspond au nom en minuscule du marché à interroger, par exemple. ‘codecanyon', ‘activeden' etc. Cela renverra les données JSON suivantes ;
    
    Array
    (
    [popular] => Array
    (
    [items_last_week] => Array
    (
    [0] => Array
    (
    [id] => 49745
    [item] => Flash Banner Creator and Rotator
    [url] => http://activeden.net/item/flash-banner-creator-and-rotator/49745
    [user] => skyplugins
    [thumbnail] => http://3.s3.envato.com/files/143908.jpg
    [sales] => 4
    [rating] => 4.5
    [rating_decimal] => 4.50
    [cost] => 15.00
    [uploaded_on] => Fri Jul 17 05:17:52 +1000 2009
    [last_update] => Sun May 16 12:49:50 +1000 2010
     => ads, advertising, banner creator, black, blue, easy to use, flash ad creator, intro, intro builder, orange, red, slideshow, slideshow, xml banner maker, xml banner rotator
    [category] => flash/image-viewers/banner-rotators
    )
    
    . . . & 35 more . . .
    
    [items_last_three_months] => Array
    (
    [0] => Array
    (
    [id] => 6122555
    [item] => Professional Banner Ads 1
    [url] => http://activeden.net/item/professional-banner-ads-1/6122555
    [user] => toosq
    [thumbnail] => http://1.s3.envato.com/files/72736598/Thumbnail.jpg
    [sales] => 27
    [rating] => 5.0
    [rating_decimal] => 4.83
    [cost] => 5.00
    [uploaded_on] => Sat Nov 16 05:22:23 +1100 2013
    [last_update] => Sat Nov 16 05:36:24 +1100 2013
     => ad, adwords, banner, envato, google, graphic, image, logo, sale
    [category] => flash/animations
    [live_preview_url] => http://1.s3.envato.com/files/72736599/PreviewImage.jpg
    )
    
    . . . & 46 more . . .
    
    [authors_last_month] => Array
    (
    [0] => Array
    (
    [item] => barisintepe
    [sales] => 53
    [url] => http://activeden.net/user/barisintepe
    [image] => http://0.s3.envato.com/files/1312722/my_logo.png
    )
    
    . . . & 18 more . . .
    
    
  4. Articles de recherche ; URL : http://marketplace.envato.com/api/edge/search :{ SITENAME },{ CATEGORY },{ SEARCH_TERM }.json Le paramètre ‘SITENAME' accepte une chaîne. Cela correspond au nom en minuscule du marché à interroger, par exemple. ‘codecanyon', ‘activeden' etc. Le paramètre ‘CATEGORY' accepte une chaîne. Il s'agit d'une liste facultative de catégories et de sous-catégories. Les chaînes de la liste doivent être séparées par %2f (URL échappée /) par exemple music%2fcorporate%2fmotivational Le paramètre ‘SEARCH_TERM' accepte une chaîne. Il s'agit de l'expression de recherche (par exemple xml, preloader, dance, sky). Le paramètre d'expression peut également utiliser une logique de recherche de base, telle que AND, OR ou un regroupement. Par exemple, l'expression suivante recherchera ‘theme' et ‘blue' ou ‘green' : theme|and|(blue|or|green). Une expression telle que ‘bleu|vert|jaune' est équivalente à ‘bleu|et|vert|et|jaune'. Les premier et deuxième paramètres sont facultatifs, le troisième est obligatoire. Cela renverra les données JSON suivantes ;
    
    Array
    (
     => Array
    (
    [0] => Array
    (
    [id] => 5150861
    https://www.wpkube.com/envato-marketplaces-api-introduction-php-public-set/
     => Positive & Happy
    [url] => http://audiojungle.net/item/positive-happy/5150861
    [type] => music/corporate/motivational
    [sales] => 3
    [rating] => 0.0
    )
    
    . . . & 49 more . . .
    
    

C'est ça! J'espère que vous avez trouvé cette très brève introduction à l'API Envato utile et si vous avez des questions ou n'êtes pas clair sur quelque chose, demandez-moi simplement ci-dessous ou tweetez-moi @harribellthomas.

Laisser un commentaire