OAuth 报 invalid_scope 是哪里配错
现象#
安装应用时浏览器跳到 Shopify 授权页,直接显示 OAuth error invalid_scope: The access scope is invalid,商家看不到同意按钮,安装走不下去。
原因#
- scope 名称拼错或大小写不对,Shopify 只认固定枚举里的 snake_case 写法
- 申请了 read_all_orders 这类受保护权限,但没有先在后台通过用途审核
- shop_app:oauth 这种非 Admin 权限被塞进授权链接的 scope 参数里
- 多个 scope 之间用了空格而不是逗号,服务端按整串匹配导致解析失败
处理步骤#
- 把授权链接里的
scope按逗号拆开,逐个对照官方 scope 列表 - 确认全部小写,例如
write_products而不是writeProducts - 受保护权限先在 Dev Dashboard 提交申请,通过后再写回版本配置
- 把
shop_app:oauth从 scope 参数删掉,只在版本权限里声明 - 改完 scope 重新发布版本,并让商家重新走一次安装授权
验收标准#
重开安装链接能看到权限同意页,同意后回调收到 code,换到的 token 里 scope 字段与申请列表完全一致。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。