Neither they have well structured documentation nor they have good community support. My frustration level is up after I’ve started developing shopify apps.
I know right! I’ve messaged them privately and publicly multiple times and they literally don’t reply. This is not something trivial, I’m honestly asking them why they’re automatic checks are failing when i’ve implemented things exactly based on their documentaion.
The first thing your app needs to do when it’s installed is take the merchant to the OAuth URL mentioned here, which is the format of: https://[shop].myshopify.com/admin/oauth/request_grant
Instead, your app is going to your own custom “/connect/shopify…” URL.
This is a requirement for Shopify apps - you’re not allowed to take them to your own landing page to create an account first. They first need to authorise your app, then you can redirect them elsewhere.
Double check the OAuth docs for more information about requesting the necessary scopes if you haven’t already, and make sure it is the first thing that happens after install.
I’m a bit confused since the Shopify docs say redirect to admin/oauth/authorize and I can’t find any mention of /admin/oauth/request_grantin the link that you shared.
Should i redirect the user from Shopify (after requesting installation) back to Shopify with scopes at admin/oauth/authorize so that they can approve the permissions and handle account creation and set up during the call back?
Apologies - yes you do want to redirect to /admin/oauth/authorize. Shopify will then redirect them to /admin/oauth/request_grant and show the OAuth screen. The URL we build in our auth process looks like this:
We are facing similar issues , kindly help as there is no proper documentation of what has changed in recent times. We have already published 3-4 apps with similar code base, now it is rejecting our new app.Also there is no reply from shopify end except rejecting the apps.
Is there any change please tell ? this is our structure
Basically is app is not installed it will redirect to auth which will redirect to /admin/oauth/request_grant and then ask for oauth permission. This is the entire flow please help
router.get("(.*)", async (ctx) => {
const shop = ctx.query.shop;
const currShop = await ActiveShops.getShop(shop);
if (currShop) {
await handleRequest(ctx);
} else {
// This shop hasn't been seen yet, go through OAuth to create a session
ctx.redirect(`/auth?shop=${shop}`);
// ctx.redirect("admin/oauth/authorize");
}
});