Introducción a la API de Envato Marketplaces para PHP: el conjunto público

Introducción a la API de Envato Marketplaces para PHP: el conjunto público

¡Hola chicos! Estoy emocionado de escribir mi primer artículo para clarityoneaudio, y hoy les voy a hablar sobre la API de Marketplaces de Envato. Envato es la más grande y, en mi opinión, posiblemente una de las compañías en línea más relevantes hoy en día cuando se trata de artículos premium de WordPress. Con más de 4000 temas premium de WordPress de Themeforest.net y más de 2500 complementos de WordPress de Codecanyon.net, la interacción con los mercados se ha vuelto aún más importante para los anunciantes últimamente.

Afortunadamente, Envato permite y fomenta este tipo de interacción a través de su API Marketplaces. Puedes ver la documentación oficial aquí; http://extras.envato.com/api/. En este artículo, cubriré el lado público de esta API, incluido cómo usarla, y le proporcionaré un fragmento útil que puede personalizar y pegar directamente en sus propios proyectos. Al final, también compartiré mis 4 canales de datos principales en la API y le mostraré cómo usarlos y qué datos devuelven. Tenga en cuenta que se requieren conocimientos básicos en el manejo de objetos PHP. ¿Listo? Empecemos entonces.

La diferencia entre las API públicas y privadas

La API de Envato Marketplaces tiene dos lados. La primera es la oración pública (que cubriré en este artículo) y la otra es la oración privada. La principal diferencia entre ellos es que el privado requiere una clave API válida. Vea las otras diferencias a continuación;

  • Público:
    • No necesita una clave API.
    • Devuelve datos generales / disponibles públicamente, como:
      1. La cantidad de archivos disponibles actualmente en un mercado.
      2. Los detalles de un artículo (por ejemplo, precio, etc.).
      3. Información pública del usuario (como número de ventas / seguidores, URL de la foto de perfil, ubicación, etc.)
      4. Datos de búsqueda: realiza una búsqueda en uno de los sitios y devuelve los primeros 50 elementos.
      5. Archivos populares en un mercado.
      6. Archivos recomendados en un mercado.
      7. Nuevos archivos en un mercado.
  • Privado:
    • Se utiliza para devolver información segura como su saldo e ingresos.
    • Se puede usar alrededor;
      1. Devuelva los últimos 100 elementos de su extracto bancario.
      2. Confirme la compra de su artículo (requiere la clave de compra de su cliente).
      3. Descarga un archivo comprado.

Solo he enumerado algunos de los más útiles anteriormente, pero hay muchos más. Lea la documentación para obtener más información.

El código

¡Bajemos la cabeza primero! La estructura de todo nuestro código en este tutorial es muy similar; Usamos PHP cURL para obtener datos JSON de la API que luego convertimos en un objeto PHP y usamos. A continuación se muestra un ejemplo de la anatomía básica de nuestras funciones (esta función en particular devolverá todas las categorías de CodeCanyon con la cantidad de archivos en cada una);

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;
}

Cuando veamos usos específicos más adelante, todo lo que necesita hacer es cambiar la URL en la línea 6 para que se adapte a sus necesidades. Para ver estos datos, necesitamos imprimirlos en la pantalla (ya que este es un objeto PHP, asegúrese de usarlo print_r y no eco). A continuación se muestra un ejemplo de cómo puede imprimir el resultado de nuestra función, así como el resultado de la pantalla;

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

producción (no se preocupe por la apariencia, manipularemos los datos más adelante);

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 . . .

… Y aquí hay un ejemplo de cómo puede obtener y utilizar los datos del objeto.

// 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>';

Esto devolverá el siguiente código HTML;

  • JavaScript – 1402
  • Secuencias de comandos PHP – 2096
  • .NET – 132
  • WordPress – 2542
  • Complementos – 608
  • CSS – 697
  • HTML5 – 350
  • Móvil – 696
  • Aplicaciones – 225
  • Pieles – 98
  • Plantillas Edge Animate – 54

¡Eso es todo por lo básico! Ahora echemos un vistazo a algunos de los usos específicos.

Si bien no repasaré todos los canales de datos posibles aquí, todos se explican en la documentación de la API.

Mis 4 canales de datos más útiles

  1. Recuperar datos de artículos; URL: http://marketplace.envato.com/api/edge/item: {ITEM_ID} .json El parámetro ‘ITEM_ID’ acepta un número entero. Esto corresponde a la identificación única que Envato asigna a un producto. Esto devolverá los siguientes datos JSON;
    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. Obtenga el artículo destacado (y el archivo gratuito del mes); URL: http://marketplace.envato.com/api/edge/features: {MARKETPLACE_NAME} .json El parámetro ‘MARKETPLACE_NAME’ acepta una cadena. Esto corresponde al nombre en minúscula del mercado que se va a consultar, p. Ej. ‘codecanyon’, ‘activeden’ etc. Esto devolverá los siguientes datos JSON;
    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. Obtenga artículos populares; URL: http://marketplace.envato.com/api/edge/popular: {MARKETPLACE_NAME} .json El parámetro ‘MARKETPLACE_NAME’ acepta una cadena. Esto corresponde al nombre en minúscula del mercado que se va a consultar, p. Ej. ‘codecanyon’, ‘activeden’ etc. Esto devolverá los siguientes datos JSON;
    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. Elementos de búsqueda; URL: http://marketplace.envato.com/api/edge/search: {SITENAME}, {CATEGORY}, {SEARCH_TERM} .json El parámetro ‘SITENAME’ acepta una cadena. Esto corresponde al nombre en minúscula del mercado que se va a consultar, p. Ej. ‘codecanyon’, ‘activeden’ etc. El parámetro ‘CATEGORY’ acepta una cadena. Esta es una lista opcional de categorías y subcategorías. Las cadenas de la lista deben estar separadas por% 2f (URL con carácter de escape /), por ejemplo, música% 2fcorporate% 2fmotivational El parámetro ‘SEARCH_TERM’ acepta una cadena. Este es el término de búsqueda (por ejemplo, xml, preloader, dance, sky). El parámetro de expresión también puede utilizar la lógica de búsqueda básica, p. Ej. B. Y, O o agrupación. Por ejemplo, la siguiente expresión busca ‘tema’ y ‘azul’ o ‘verde’: tema | y | (azul | o | verde). Una expresión como «azul | verde | amarillo» corresponde a «azul | y | verde | y | amarillo». El primer y segundo parámetro son opcionales, el tercero es obligatorio. Esto devolverá los siguientes datos JSON;
    Array
    (
    [search] => Array
    (
    [0] => Array
    (
    [id] => 5150861
    https://www.clarityoneaudio.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 . . .
    
    

¡Eso es! Espero que haya encontrado útil esta breve introducción a la API de Envato y si tiene alguna pregunta o no está seguro de algo, simplemente pregúnteme o envíeme un tweet a continuación. @harribellthomas.

¡Si te ha gustado no dudes en compartirlo!

Deja un comentario

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad