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****`);
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 6, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 29, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024