Affichez tout ce que vous voulez de l'API Envato à l'aide de PHP

Si vous n'êtes pas au courant, Envato dispose d'une API stable et fantastique pour travailler qui est super puissante et super simple. La dernière version (au moment de l'écriture) est sortie v2. Dans cet article, nous verrons comment accéder à chaque ensemble public à partir de l'API Envato..


Apprendre les bases

Tout d’abord: vous devez savoir où trouver l’API, de quoi il s’agit et comment cela fonctionne. Vous pouvez trouver la version officielle de l'API sur les forums, ainsi que la mise à jour du thread de l'API et les informations de mise à jour v1..

L'API fonctionne en envoyant des demandes aux URL personnalisées contenant les données que vous souhaitez renvoyer. Les données peuvent également être renvoyées dans deux formats, xml ou JSON, qui est rendu est à vous. Je préfère retourner en JSON et utiliser PHP json_decode pour transformer les données en tableaux imbriqués..


Ce que nous allons accomplir

Ci-dessous, vous verrez une capture d'écran de tous les ensembles publics actuellement disponibles. Nous allons passer en revue chacun d'entre eux aujourd'hui, individuellement, avec un exemple de code fonctionnel et un aperçu du résultat final.!

Pour chaque ensemble que nous couvrons aujourd’hui, je vais décrire brièvement son objectif, publier le code, puis expliquer plus tard chaque étape du code ci-dessous. Assurez-vous de poser des questions sur les extraits de code que vous trouverez ci-dessous..

Aussi, n'hésitez pas à utiliser le code et les techniques apprises dans ce tutoriel comme vous le souhaitez!


1. Messages de blog

le articles de blog set vous permet d’interroger et d’afficher une liste d’articles de blog pour un marché donné. Il nécessite un paramètre, à savoir le marché sur lequel vous souhaitez que les récents articles de blog de.

 // Initialise curl $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/blog-posts:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['blog-posts']) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' blog-posts '] [$ i] [' title '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Permet de parcourir l'extrait ci-dessus en détail, car le reste de nos extraits sera très similaire.

  • Nous commençons par créer une nouvelle poignée curl. cURL nous permet d’interroger l’API avec les paramètres de notre choix. Vous pourriez utiliser fichier_get_contents, mais vous gagnerez en performance avec cURL.
  • Nous définissons notre URL cible. Remarquez comment nous sommes passés dans l'ensemble articles de blog et alors forêt à thème pour le paramètre. Notez également que nous demandons que les données soient au format JSON..
  • Ensuite, nous définissons deux autres options cURL. CURLOPT_CONNECTTIMEOUT nous permet de définir le délai d'expiration de notre demande, que nous fixons à 5 secondes. L'autre option est CURLOPT_RETURNTRANSFER indique à cURL de renvoyer les données sous forme de chaîne au lieu de les afficher directement.
  • Nous stockons les résultats de la demande cURL dans $ ch_data.
  • Maintenant, nous vérifions s’il ya effectivement des données retournées. Si oui, nous décodons le JSON et le transformons en tableau.
  • Enfin, nous parcourons les éléments du tableau et imprimons des données de base.

Gardez ces détails à l'esprit; comme je l'ai dit, vous verrez ce motif dans presque tous les ensembles que nous couvrons, bien qu'ils varient légèrement.

Et une démo de la sortie:


2. Fils actifs

le fils actifs ensemble vous permet de sortir des discussions de forum récemment actives.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/active-threads:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['active-threads'])) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' active-threads '] [$ i] [' title '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Notez quelques choses ici; Premièrement, nous avons modifié l’URL de notre requête pour refléter le nouvel ensemble que nous souhaitons obtenir. Deuxièmement, notez que les noms des tableaux ont changé comme ils le seront à chaque nouvel ensemble demandé. Enfin, remarquez comment print_r est commenté. Ceci est très utile pour déboguer et afficher la structure et la hiérarchie des données..

Et une démo de la sortie:


3. Nombre de fichiers

Ne laissez pas le nom du nombre de fichiers vous tromper. Ce n'est pas le nombre de fichiers d'utilisateurs (mais nous allons couvrir cela!), Mais plutôt le nombre de fichiers dans une catégorie donnée d'un marché donné. Par exemple, cela vous permettra de connaître le nombre total de modèles de sites que nous avons sur ThemeForest, ce que nous ferons maintenant..

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/number-of-files:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['nombre de fichiers'])) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' nombre-de-fichiers '] [$ i] [' catégorie '],' - ', $ json_data [' nombre de fichiers '] [$ i] [' nombre_de_fichiers '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Bien sûr, notre demande d’URL a changé et nous avons passé le paramètre de forêt à thème, qui est le marché, nous allons tirer les données. Voici un exemple de la sortie de cet extrait:


4. Nouveaux fichiers

Tout comme la page d’accueil de ThemeForest qui affiche une liste de nouveaux fichiers, vous pouvez également accéder aux nouveaux fichiers d’un marché donné à partir du répertoire d’utilisation. nouveaux fichiers ensemble. Un bon ajout à cet ensemble est la possibilité d'afficher également la vignette de l'article, comme vous le verrez bientôt.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/new-files:themeforest,wordpress.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['new-files']) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' new-files '] [$ i] [' item '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Contrairement à nos extraits précédents, cet ensemble nécessite deux paramètres. Cela nécessite respectivement le marché et la catégorie souhaitée. Notez que nous avons ajouté du PHP et du balisage dans notre boucle for. Cela nous permet d'afficher une vignette de l'article.

Voici un exemple de sortie de cet extrait:


5. populaire

De manière similaire à l'affichage des articles récemment téléchargés sur un marché donné, nous pouvons également afficher les articles populaires d'un marché donné. Peut-être souhaitez-vous afficher une liste des fichiers ThemeForest populaires sur votre blog. Cet extrait permettrait d'atteindre cet objectif.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/popular:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ json_short = $ json_data ['popular'] ['items_last_week']; // Sauvegardez-nous en tapant. $ data_count = count ($ json_short) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_short [$ i] [' item '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Notez comment nous avons ajouté une variable supplémentaire nommée json_short pour nous sauver en tapant dans le tableau imbriqué de données retournées. En quelques lignes de code, nous pouvons afficher la vignette, le nom et le lien de l'élément, comme illustré ci-dessous:


6. Nouveaux fichiers de l'utilisateur

le nouveaux-fichiers-de-utilisateur est un jeu populaire que nous utilisions depuis longtemps lorsque nous avons créé un plugin WordPress avec l’API Envato. Cet ensemble vous permet de récupérer les 10 fichiers les plus récents qu'un utilisateur a téléchargés et les données qui les accompagnent. Vous pouvez utiliser cet ensemble pour vous promouvoir automatiquement sur votre blog chaque fois que vous téléchargez un nouvel élément..

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/new-files-from-user:creatingdrew,themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['new-files-from-user'])) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' new-files-from-user '] [$ i] [' item '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Les paramètres requis sont le nom d'utilisateur et le marché souhaité. Le reste de l'extrait suit la même logique que celle décrite précédemment. Voici un exemple de la sortie deux de mes fichiers récents.


7. Nouveaux fichiers aléatoires

le fichiers aléatoires l'ensemble est assez explicite et agit comme prévu. Il renvoie une liste aléatoire de fichiers récemment téléchargés à partir d'un marché donné. Il renvoie également des métadonnées sur le fichier que vous êtes libre d'utiliser et de manipuler..

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/random-new-files:themeforest.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['random-new-files']) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' random-new-files '] [$ i] [' item '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Il n'y a rien que tu n'aies déjà vu ici. Nous utilisons cet ensemble pour afficher des vignettes et le titre. Assurez-vous de vérifier toutes les données qui sont retournées, cela pourrait vous intéresser. Une capture d'écran de la sortie est ci-dessous:


8. Recherche

C'est vrai, vous pouvez utiliser l'API pour rechercher des données personnalisées dans des catégories personnalisées à partir de marchés personnalisés! Les développeurs ont vraiment pensé à l'API, et le chercher L'ensemble en est la preuve parfaite. Jetons un coup d'oeil à un extrait de recherche court. N'oubliez pas que vous pourriez extraire toutes ces données de la saisie de l'utilisateur et configurer une recherche Envato personnalisée sur votre site, mais cela dépasse le cadre de ce didacticiel..

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/search:themeforest,wordpress,clean.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); $ data_count = count ($ json_data ['search']) -1; écho '
    '; pour ($ i = 0; $ i <= $data_count; $i++) echo '
  • ', $ json_data [' search '] [$ i] [' description '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Ci-dessus quelques explications.

  • Nous avons changé l'URL de notre requête en jeu de recherche..
  • L'ensemble de recherche prend trois paramètres, le marché, la catégorie à rechercher et le terme à rechercher.
  • Ici, nous avons cherché le terme nettoyer

Je vous recommande de consulter la documentation de l'API et de vérifier tout ce qui est possible avec l'ensemble de recherche..


9. utilisateur

le utilisateur l'ensemble de données renvoie une petite quantité d'informations sur un utilisateur donné. Notez que la clé API est ne pas Champs obligatoires.

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/user:collis.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); // print_r ($ json_data); écho '
    '; écho '
  • Emplacement = ', $ json_data [' utilisateur '] [' emplacement '],'
  • '; écho '
  • Nom d'utilisateur = ', $ json_data [' utilisateur '] [' nom d'utilisateur '],'
  • '; écho '
  • Sales = ', $ json_data [' user '] [' sales '],'
  • '; écho '
'; else echo 'Désolé, un problème est survenu lors de la connexion à l'API.';

Étant donné que nous ne renvoyons les informations que d’un utilisateur, il n’est pas nécessaire d’effectuer une boucle, il suffit de sortir les données..


10. communiqués

Vous n'aurez probablement jamais besoin d'utiliser le les libérations ensemble, mais j'ai dit que nous couvririons tous les ensembles publics, et c'est ce que font bien. L'ensemble de versions retourne l'édition et les informations de définition pour l'API. Fondamentalement, il est simplement utilisé pour générer de la documentation. Juste au cas où vous souhaiteriez que l'extrait affiche ces informations, vous pouvez le trouver ci-dessous:

 $ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, 'http://marketplace.envato.com/api/v1/releases.json'); curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); $ ch_data = curl_exec ($ ch); curl_close ($ ch); if (! empty ($ ch_data)) $ json_data = json_decode ($ ch_data, true); print_r ($ json_data);  else echo 'Désolé, un problème est survenu lors de la connexion à l'API.'; 

Merci d'avoir lu

Nous avons couvert chaque ensemble répertorié dans l'ensemble public de la v1 de l'API! N'hésitez pas à vous féliciter et à aller manger du bacon, vous le méritez bien.

Cet article a été initialement publié sur le blog ThemeForest l'année dernière. Nous portons actuellement certains des articles les plus populaires sur Nettuts+.