要实现在安装 Shopify 应用后重定向到自定义 URL,你可以使用 Shopify 的 OAuth 流程和 Webhooks。下面是一个示例代码来说明这个解决方法:
require 'sinatra'
require 'shopify_api'
SHOPIFY_API_KEY = 'your_shopify_app_api_key'
SHOPIFY_SHARED_SECRET = 'your_shopify_app_shared_secret'
REDIRECT_URI = 'https://your_custom_url.com/install'
get '/install' do
shop = params[:shop]
code = params[:code]
ShopifyAPI::Session.setup(api_key: SHOPIFY_API_KEY, secret: SHOPIFY_SHARED_SECRET)
session = ShopifyAPI::Session.new(shop, nil)
if session.valid?
token = session.request_token(params)
# 存储 token,或者将其关联到用户的 Shopify 商店
# ...
redirect REDIRECT_URI
else
# 授权失败的处理
# ...
end
end
配置 Shopify 应用的授权回调 URL 为 /install
。
这样,在用户安装 Shopify 应用并授权后,将会重定向到该 URL。
创建一个 Webhooks 路由处理程序,用于 Shopify 应用的安装和卸载事件。
post '/webhooks/app/uninstalled' do
# 获取商店域名
shop_domain = request.env['HTTP_X_SHOPIFY_SHOP_DOMAIN']
# 删除存储的 token,或者取消关联到用户的 Shopify 商店
# ...
status 200
end
/webhooks/app/uninstalled
。
这样,当用户卸载 Shopify 应用时,Shopify 将向该 URL 发送 webhook 请求。这样,当用户安装 Shopify 应用后,将会重定向到你的自定义 URL。当用户卸载 Shopify 应用时,你也可以根据需要执行相应的操作。