Shopify アプリに関する話題はこちら
開発者の皆様、こんにちは
現在、Shopifyアプリを開発するべく勉強中です。
NodeのExpressを使って開発を考えており、下記のGitの通り試して
アクセストークンまでは取得できました。
■閲覧中のGitHub
https://github.com/Shopify/shopify-node-api
下記のコードの最後に
return res.redirect(`/?host=${req.query.host}&shop=${req.query.shop}`);
とあり、リダイレクトすると自分で立てたサーバーのルートにリダイレクトされ、管理画面は消えて、埋め込みアプリとなりません。
インストール完了後、Shopify管理画面の中のiFrameに自分で立てたサーバーの出力を出すにはどうしたらいいのでしょうか?
初期化時のオプションの埋め込みアプリ指定はtrueにしております。
調べたのですが、わからず・・ご存じであればご教授いただけないでしょうか。
よろしくお願い致します。
■初期化時のオプション
Shopify.Context.initialize({
・・・
IS_EMBEDDED_APP: true,
・・・
});
■Oauth最後のプロセスのコード
app.get('/auth/callback', async (req, res) => {
try {
const session = await Shopify.Auth.validateAuthCallback(
req,
res,
req.query as unknown as AuthQuery,
); // req.query must be cast to unkown and then AuthQuery in order to be accepted
ACTIVE_SHOPIFY_SHOPS[SHOP] = session.scope;
console.log(session.accessToken);
} catch (error) {
console.error(error); // in practice these should be handled more gracefully
}
return res.redirect(`/?host=${req.query.host}&shop=${req.query.shop}`); // wherever you want your user to end up after OAuth completes
});
半分自己解決です。。。
ドキュメントを探していると、下記のVIDEOの中で管理画面のURLに直接リダイレクトすると解説がありました。こちらの方法が正攻法なのかわからないですが、一旦解決しましたので記載しておきます。
■ビデオ(21分30秒ごろ)
https://www.youtube.com/watch?v=oKGR9RVCUDs
res.redirect(`https://${session.shop}/admin/apps/****app name****`);
Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024「味噌の可能性を、とき放つ」をコンセプトに、豊かな自然に恵まれた信州で味噌の製造販売を行う新田醸造。江戸末期に創業した老舗のみそ屋さんですが、2024年春、顧客層や販売範囲の...
By Minami_ Jul 30, 2024