Liquid、JavaScriptなどに関する質問
Shopify埋め込み公開アプリを、node (Shopify App CLI)、 React で構築しています。
指定したアセットファイルをテーマのアセットに追加するようなアプリを作りたいのですが、
node (server.js)で以下のように記述すると、下記のエラーがでてしまい、困っています。
router.get("/post-assets", async (ctx, next) => { try { const shop = ctx.cookies.get("shopOrigin"); //get main theme ID const themeId = await fetch( ...
(メインテーマのIDを取得)
...
console.log(ID);
return ID; }); // post asset await fetch( `https://${shop}/admin/api/2019-04/theme/${themeId}/assets.json`, { methods: "PUT", }, { headers: { "X-Shopify-Access-Token": ctx.cookies.get("accessToken"), "Content-Type": "application/json", }, }, { body: JSON.stringify({ assets: { key: "template/index.liquid", src: "http://apple.com/new_bg.gif", }, }), } ) .then((response) => response.json()) .then((data) => console.log(data)) .catch((error) => { console.error("Error:", error); }); } catch (err) { console.log(err); } });
エラーメッセージ
86586851463 // メインテーマのIDは取得できる { errors: '[API] Invalid API key or access token (unrecognized login or wrong password)' }
アセットファイルの追加方法が間違っているでしょうか? 記述がもし間違っていたら、教えていただけると幸いです。
解決済! ベストソリューションを見る。
成功
以下の例が参考になるかと思います。
https://shopify.dev/docs/admin-api/rest/reference/online-store/asset?api[version]=2020-04#update-202...
ご提示のコードは、index.liquidというテンプレートを追加するコードなので、画像を追加する場合は、
"key": "assets/empty.gif", "attachment": "R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\n" }
のようになると思います。
また、エラーの内容は、アクセストークンのパーミションが足らないようにも見えますので、下記をみて、テーマの更新ができるscopeをつけてアクセストークンを生成しているか、確認された方が良いと思います。
https://shopify.dev/docs/admin-api/access-scopes
成功
以下の例が参考になるかと思います。
https://shopify.dev/docs/admin-api/rest/reference/online-store/asset?api[version]=2020-04#update-202...
ご提示のコードは、index.liquidというテンプレートを追加するコードなので、画像を追加する場合は、
"key": "assets/empty.gif", "attachment": "R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\n" }
のようになると思います。
また、エラーの内容は、アクセストークンのパーミションが足らないようにも見えますので、下記をみて、テーマの更新ができるscopeをつけてアクセストークンを生成しているか、確認された方が良いと思います。
https://shopify.dev/docs/admin-api/access-scopes
ありがとうございます。
画像を追加する方法参考にし、また、そもそも最初に書いたコードの中にいくつかミスがあり、それを修正して、無事AssetsのPUTができました。(お恥ずかしながらthemesがthemeになっていたり、fetchの記述が間違っておりました。。)
大変ありがとうございました。
リエンゲージメントの自動化で売り上げ向上へ!素敵なオンラインストアを作成し、見込み顧客の携帯へ広告を直接に送信する、またはSNSなどで宣伝すると、お客様がストアに行き着...
By Mirai Mar 24, 2024Shopifyは世界で最も革新的なブランドと起業家をサポートしています。個人起業家やあらゆる規模のビジネスの成長を後押しするために、Shopify アカデミーではShopif...
By SarahF_Shopify Mar 22, 2024オンラインストア運営はとてもやりがいのある活動です。新しい注文が入った時の喜びや世界中のお客様とやりとりできる可能性、商品に対して最高のレビューをもらった時の満足感は、毎日の...
By Mina Mar 13, 2024