Cómo generar un token de acceso de Shopify

Ilustración en fondo verde

mucho propietarios de tiendas necesitan效果标准a incorporar más funcionalidades en su tienda. O tal vez seas un desarrollador que tiene una gran idea para una nueva aplicación (app) que ayudaría a los propietarios de tiendas a vender mejor. Cualquiera sea el caso, probablemente necesites usar la API de Shopify. La API te permite hacer cosas tales como descargar el inventario de productos de una tienda y modificar el tema de la tienda.

En este artículo, veremos qué se necesita para obtener acceso a una tienda en particular y hacer llamadas a la API. Se supone que por lo menos tienes algunos conocimientos de desarrollo. Usaré PHP para presentar ejemplos, pero puedes usar casi cualquier lenguaje de desarrollo para lograr toda la funcionalidad que ha sido mencionada.

Tipos de aplicaciones

En Shopify, hay dos tipos de aplicaciones: privadas y públicas. Las aplicaciones privadas están bloqueadas a una sola tienda y generalmente son para propietarios de tiendas que desean ampliar la funcionalidad de sus propias tiendas. Las aplicaciones públicas, como puedes imaginar, son para aplicaciones que se ofrecerán a todos los propietarios de tiendas y no se bloquearán a una sola tienda. Por ejemplo, todas las aplicaciones enumeradas en latienda de aplicaciones de Shopify(contenido disponible solo en inglés), son aplicaciones públicas. En este artículo, nos centraremos en las aplicaciones públicas, pero el aspecto técnico de ambas es el mismo.

Introducción

En esta guía, explicaremos paso por paso todo lo que se necesita para que tu aplicación se ejecute y se comunique con la API de Shopify. Antes de continuar, deberás hacer lo siguiente (si no lo has hecho todavía):

1. Regístrate para obtener unacuenta de Shopify Partner。¡Es gratis!
2. Cuando inicies sesión, continúas y creas las claves API de tu aplicaciónaquí。La mayoria de las各种没有necesitan explicación. Sin embargo, cuando llegues al campo URL de la aplicación devolución de llamada, deberás ingresar el dominio en el que estás trabajando. Shopify solo enviará tokensa este dominio. Por ejemplo, si estás trabajando en tu computadora, puedes configurar esto enhttp ://localhost/por el momento.
3. Después de iniciar sesión, haz clic enAplicacionesen la barra de navegación izquierda y haz clic enCrear aplicacion

    Nombra tu aplicación como quieras. Para la URL de la aplicación, ingresa el dominio en el que estás trabajando con/instalar.php。Si estás desarrollando a nivel local en tu computadora, deberás ingresarhttp: //localhost/install.php。Es posible que debas agregar un número de puerto si tu servidor no se está ejecutando en el puerto 80 (por ejemplo,http:// localhost:8888/install.php).

    Captura de pantalla para crear app

    4.Una vez que tu aplicación esté creada, dirígete a la pestaña Información de la aplicación. En las URL(s) de redireccionamiento whistlisted, quizá quieras agregar el mismo dominio que en el paso 3, esta vez fijado por/generate_token.php.Por ejemplo, si estás desarrollando en tu computadora a nivel local, quizá quieras agregar http:http:// localhost/generate_token.php

    Captura de pantalla de URL
    5. Desplázate hasta la parte inferior de esta vista y toma nota de tu clave API y de tu clave secreta API. Necesitarás estas credenciales para seguir los ejemplos.

    Captura de pantalla de API KEY

    Descargar mi código PHP de muestra(contenido disponible solo en inglés). Todo mi código de ejemplo que se muestra a continuación está tomado de estos scripts. El código de muestra está escrito en un estilo de procedimiento para facilitar el aprendizaje de los conceptos básicos. En un contexto de producción, seguramente querrás agregar más controles y optimizaciones.

    También te pueden interesar:7 Tips to Maximize Your Use of the Shopify API

    Cómo generar un token de acceso

    Para comenzar a trabajar con los datos de la tienda utilizando la API de Shopify, debes estar autenticado por la tienda. Eso significa que el propietario de la tienda debe instalar y aprobar tu aplicación para ciertos permisos (por ejemplo, crear nuevos productos). Esto se realiza mediante un proceso llamado OAuth, que es un método común y seguro para la comunicación entre aplicaciones. Sabemos que parece complicado pero no te preocupes, cualquiera puede dominarlo rápidamente.

    En este artículo, utilizaremos OAuth para crear una URL especial donde el usuario pueda aprobar tu aplicación y finalmente generar un token especial que puedes usar para acceder a la tienda relevante a través de la API en el futuro. A continuación se muestra un diagrama de flujo que describe todos los pasos necesarios para lograr esto.

    Cómo generar un token de acceso - ilustración

    Paso 1: recopilación de información de la tienda

    Cuando un comerciante de Shopify solicita instalar tu aplicación a través de latienda de aplicacionesde Shopify, se enviará una solicitud a la URL de tu aplicación con el parámetro de latiendaanexadoEl valor del parámetro de latiendaserá el nombre de dominio delmi shopifydel comerciante, por ejemplo:http:// localhost/install.php?shop=johns-apparel.myshopify.com

    Podemos simular esta solicitud de instalación con solo pegar esta URL en la barra de direcciones de nuestro navegador mientras nuestro servidor se está ejecutando, sustituyendo el valor de tienda por el dominio de tu tienda de desarrollo de Shopify.

    Paso 2: aprobación de instalación

    Una vez que tengas la URL "myshopify. com" del propietario de la tienda, deberás redirigir al usuario a una URL donde puedas aprobar su aplicación. El formato de esta URL es el siguiente.

    https://{shop}。myshopify. com/admin/oauth/authorize?client_id=

    {api_key}&scope={scopes}&redirect_uri={redirect_uri}

    {shop}

    La URL del subdominio “mishopify. com” que te dio el usuario.

    {api_key}

    Tu clave API que se te proporcionó, según lo indicado anteriormente.

    {api_key}

    Esta es una lista de permisos que le estás pidiendo al propietario de la tienda que acepte. Para este ejemplo, necesitamos la capacidad de leer pedidos y modificar productos, por lo que solicito read_orders y write_products.Vea una lista completa de alcances y sus definiciones.(contenido disponible solo en inglés)

    {redirect_uri}

    Donde el usuario debe ser enviado a la siguiente. Esta es la URL para el script que generará el token, como se describe en el paso 3 a continuación.

    Ejemplo del código PHP

    Paso 3: captura el código de acceso

    Si el usuario ha aprobado tu instalación, volverá con un código de autorización en la URL como una cadena de consulta. Por ejemplo:

    Captura de código de acceso

    view raw -URLhosted with ❤ byGitHub

    La parte anterior al "?" coincide con la variable$ redirect_urique habías incluido.

    Después de la "?" hay varios parámetros que deberían haberse incluido: "code", "hmac" y "timestamp". El parámetro "code" es tu código de autorización que utilizarás para la parte del proceso de OAuth. Los otros dos parámetros se usan para validar que la solicitud sea realmente de Shopify. Vamos a trabajar en eso primero…

    Paso 3.b: Validar datos

    ¿Qué sucede si un hacker intenta enviar una solicitud a tu servidor en el formato anterior? ¿Cómo saber si es de Shopify o si es de otra persona malintencionada? Es por eso que se proporcionan la "hmac" y la "timestamp". Al registrar el parámetro HMAC SHA256, podemos comparar esto con el parámetro hmac entrante y determinar si la solicitud es legítima.

    比如de脏污PHP

    captura de pantalla

    Sigamos usando este valor de "código" para obtener un token de acceso para la tienda. Lo haremos ejecutando nuestra primera llamada API.

    ¿Todavía no eres un Shopify partner?

    Con oportunidades de ingresos e infinidad de recursos de los que puedes aprender, convertirte en un Shopify Partner es tu oportunidad de trabajar con los clientes para crear soluciones comerciales y aumentar tu experiencia. Únete a una comunidad de emprendedores y comienza hoy a construir tu negocio.

    Registrarme

    Paso 4: intercambie el código de acceso para el token de la tienda

    Por ahora tenemos todo lo que necesitamos para generar el token de la aplicación: la clave API de tu aplicación, las credenciales de la clave secreta de tu aplicación y el código de acceso.

    Shopify tiene un API call de endpoint especial que puedes usar para "intercambiar" tu código de acceso con el token API permanente de la tienda:

    < div class ="marketing-block marketing-block--light marketing-block--padded gutter-bottom">

    /admin/oauth/access_token

    比如de脏污PHPejemplo php

    En el código anterior, publicamos en los servidores de Shopify y luego almacenamos el token generado por OAuth parademo-shop.myshopify. comen la variable $ token. Recuerda, esto es como una contraseña en esta tienda, por lo que es conveniente almacenar este token en un lugar muy seguro.

    Paso 5: hacer llamadas API

    Si has llegado a este paso, ¡eso significa que has completado todas las partes difíciles! Ahora, puedes realizar llamadas API a la tienda siempre que hayas sido aprobado previamente para el objetivo pertinente. Si no es así, deberás obtener un nuevo token con los permisos necesarios siguiendo los pasos anteriores.

    Para resumir, cada llamada API necesitará los siguientes detalles:

    1. Comprar token API
    2. Comprar URL "mishopify. com"
    3. El punto final de laAPI para llamar junto con cualquier parámetro especial

    En esta guía, uno de los permisos (campos) a los que hemos solicitado acceso es leer la información del producto. Probemos ahora. El punto final que necesitarás es /admin/products.json

    比如de脏污PHP

    ejemplo php

    Si todo se procesó correctamente, lavariable $products debe contener una cadena JSON que puede verse así:

    JSON string

    En el JSON devuelto, solo tengo un producto, que es el número de identificación 370733088. Supongamos que queremos modificar este producto, por lo cual, continuando con este código, pondremos programáticamente esta identificación en una variable para que podamos trabajar con este producto.

    ID number

    Bien, ahora tenemos el número de identificación mencionado anteriormente, almacenado en$ product_id变量。Imagina,您愿意modificar el titulode este producto. El título actual, "prueba", no es muy fácil de usar después de todo. Deberás usar esa variable$ product_idvariable para que Shopify sepa qué producto estás modificando…

    captura de pantalla

    En la matriz$ modify_data arraytenemos toda la información requerida que enviamos a Shopify. Esta matriz se convierte en un JSON en nuestra funciónshopify_call ( )。Para referencia futura, los requisitos para esta llamada API se enumeran en losdocumentos de la API de Shopify(contenido disponible solo en inglés). También puedes observar que nuestro método de transacción de datos es PUT. Esto le dice a Shopify que estamos modificando los datos en lugar de descargarlos o eliminarlos.

    Si esta llamada API fue exitosa, obtendrás una cadena JSON de tus actualizaciones en la variable$ modified_product_response:

    JSON string

    Como puedes ver, el título del producto se ha actualizado para que coincida con lo que enviamos en la variable$ modify_data。Shopify ha hecho que su API sea muy predecible y consistente. Esto significa que, en el futuro, puedes trabajar con la mayoría de los puntos finales API de manera similar.

    Hacer llamadas API sobre la marcha

    Cuando desarrollo para Shopify, ahorro mucho tiempo al usar una GUI para hacer llamadas API. De esta manera, no tengo que escribir un montón de códigos PHP antes de estar seguro de que la API contiene los datos que necesito. A continuación hay algunas buenas opciones.

    • RESTed(Mac) - $3.99 (contenido disponible solo en inglés)
    • I’m Only Resting (Windows) - Gratis (contenido disponible solo en inglés)
    • RequestBin (Web-Based) - Gratis (contenido disponible solo en inglés)

    También te podría interesar:Marketing Your Shopify App: The app Listing Page

    La práctica hace la perfección

    Después de un poco de práctica, creo que estarás de acuerdo en que la API de Shopify es flexible y de fácil acceso. Se puede hacer mucho con ella y solo se está expandiendo en soporte para varios puntos finales. ¡Estoy impaciente por ver qué se te ocurre!

    Si tienes alguna pregunta, puedes encontrarme en losForos de Shopify(contenido disponible solo en inglés) o publicar en los comentarios a continuación.

    ¿Deseas obtener más información sobre la creación de aplicaciones para Shopify? Consulta nuestra lista completa de artículos sobreDesarrollo de aplicaciones de ShopifyyShopify API


    Publicado por Pablo Golán, editor en jefe del blog de Shopify en español y responsable de marketing de contenidos y localización para España y Latinoamérica. Texto original de Alex, desarrollador y fundador deRefersion。Traducción a cargo de Liz Leancole.

    Mapa de categorías: