es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La aprobación de Shopify requiere autorización inmediata sin redireccionamiento – No veo cómo obtener una URL dinámica en la configuración de la URL de la aplicación.

Mi pregunta/problema es muy similar a esta pregunta en el hilo: https://community.shopify.com/c/shopify-apis-and-sdks/app-approval-issues-app-must-install-succesful… Sin embargo, la pregunta no parece tener respuesta. También creo que se basa en una aplicación de Shopify incrustada y la mía es una aplicación independiente de Shopify (aunque tiene el comportamiento de incrustación predeterminado).

He enviado mi aplicación a revisión, pero se rechaza porque primero va a mi aplicación independiente de Shopify y luego redirige a la página de inicio de sesión de OAuth si no está instalada o a la página de inicio si está instalada.

Aquí hay una breve screencast que muestra la “instalación de la aplicación”, aterrizando en la página de destino de la aplicación independiente y luego siendo redirigido a la página de instalación: https://drive.google.com/file/d/18jUb9r_VkJZqldJSoJqKVBFxWVIr4XvF/view?usp=sharing

Y aquí está lo que tengo para la URL de la aplicación:
enter image description here

Aquí está el error que obtengo del equipo de revisión de la aplicación:
enter image description here

No entiendo cómo puedo “inmediatamente” llegar a “https://example.myshopify.com/admin/oauth/request_grant” SI ¡no conozco el nombre de la tienda! Tengo que obtener esa información de los parámetros de URL cuando aterrizan en mi página. es por eso que hago la redirección DESPUÉS de saber si tengo el parámetro de la tienda, etc.

Orden de eventos en mi código. Usar el front-end de reactjs con llamadas axios al backend express.

Front-end:

  • Aterrizar en el página de inicio de sesión de Shopify y en la carga de la página, se ejecuta esta función:
const checkShopParam = async () => {
    const url = window.location
    const shop = new URLSearchParams(url.search).get('shop');
    console.log("tienda: ", shop);
    setInstallShop(shop)

    axios.get(`${SHOPIFY_HOST}/foo?shopName=` + installShop)
        .then(response => {
            console.log(response);
            // setAuthRoute(response.data)
            if(installShop){
                // setTimeout(() => window.open(response.data), 50);
                setTimeout(() => window.location.replace(response.data), 50);
                console.log('instalar');
            }
            else{
                setTimeout(() => window.location.replace(HOST), 50);
                console.log('redirigir a la página de inicio');
            }


            // response.render("usersRoutes", { Users: Users });
        })
        .catch(console.log("Error with shopify login func"));
}

Backend:

  • La ruta del backend toma el nombre de la tienda y crea un enlace de autorización que envía como respuesta:
app.get('/foo', async (req, res) => {
    const shopName = req.query.shopName
    console.log('nombre de la tienda: ', shopName);
    let authRoute = await Shopify.default.Auth.beginAuth(
      req,
      res,
      shopName,
      // SHOP,
      '/auth/callback',
      true,
    );
    console.log(authRoute);
    res.send(authRoute)
  });

Cualquier ayuda sería muy apreciada. Háganme saber si necesitan más detalles.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basándonos en el mensaje de error proporcionado por el equipo de revisión de la aplicación, parece que el problema se encuentra en la experiencia del usuario durante el proceso de instalación de la aplicación. El equipo de revisión de la aplicación busca un proceso de instalación sin problemas para el usuario final, en el que se redirija inmediatamente al usuario a la página de concesión de autorización de OAuth al hacer clic en el botón de instalación.

    En su aplicación, parece que está redirigiendo al usuario primero a una página de inicio independiente y luego lo está redirigiendo a la página de concesión de autorización de OAuth. Esto puede estar causando confusión para el usuario final y afectando el proceso de instalación.

    Para resolver este problema, es posible que desee considerar la posibilidad de actualizar el proceso de instalación de la aplicación para redirigir al usuario directamente a la página de concesión de autorización de OAuth al hacer clic en el botón de instalación. Esto proporcionará una experiencia más fluida y sin problemas para el usuario final, y puede ayudar a resolver el problema de la desaprobación.

    Puede actualizar el proceso de instalación de la aplicación mediante la modificación de la función checkShopParam en el frontend para redirigir inmediatamente al usuario a la página de concesión de autorización de OAuth. Esto puede implicar la modificación de la forma en que se pasa el parámetro installShop al backend, para que pueda incluirse en la URL de concesión de autorización de OAuth.

    Además, puede que desee revisar las directrices de instalación de aplicaciones de Shopify para asegurarse de que su aplicación cumple con todos los requisitos para una instalación exitosa. Esto puede incluir proporcionar instrucciones claras de instalación, utilizar los alcances de OAuth correctos y proporcionar una experiencia de aplicación segura y estable.

    Si sigue experimentando problemas con el proceso de instalación de la aplicación, es posible que desee contactar con el equipo de soporte de Shopify para obtener ayuda adicional. Ellos pueden proporcionar orientación sobre cómo resolver problemas específicos, y pueden ser capaces de proporcionar más información sobre el proceso de revisión de la aplicación.

Comments are closed.