Я новичок в разработке приложений shopify и столкнулся с проблемой при доступе к файлу шаблона, например: layout / theme.liquid с использованием драгоценного камня shopify_api.
Я действительно могу правильно настроить гем в приложении и правильно его развернуть. Я могу получить доступ к продуктам и веб-крюкам, а также весь список активов см. мой код:
Код контроллера
class HomeController < ShopifyApp::AuthenticatedController
def index
# below three access for product webhook and full asset are working fine
@products = ShopifyAPI::Product.find(:all, params: { limit: 10 })
@webhooks = ShopifyAPI::Webhook.find(:all)
@assets = ShopifyAPI::Asset.find(:all, params: {"theme_id": 194896516})
# not working below this line
@templates = ShopifyAPI::Asset.all(:params => {:theme_id=> 194896516}).find{|asset| asset.attributes[:key] == "layout/theme.liquid"}
end
end
Шаблон, который отображает значение
<% content_for :javascript do %>
<script type="text/javascript">
ShopifyApp.ready(function(){
ShopifyApp.Bar.initialize({ title: "Home" });
});
</script>
<% end %>
<h2>Products</h2>
<ul>
<% @products.each do |product| %>
<li><%= link_to product.title, "https://#{@shop_session.url}/admin/products/#{product.id}", target: "_top" %></li>
<% end %>
</ul>
<hr>
<h2>Webhooks</h2>
<% if @webhooks.present? %>
<ul>
<% @webhooks.each do |webhook| %>
<li><%= webhook.topic %> : <%= webhook.address %></li>
<% end %>
</ul>
<% else %>
<p>This app has not created any webhooks for this Shop. Add webhooks to your ShopifyApp initializer if you need webhooks</p>
<% end %>
<hr>
<h2>Assets</h2>
<% if @assets.present? %>
<% @assets.each do |asset| %>
<li><%= asset.key %></li>
<!-- <li><% asset.value %></li> -->
<% end %>
<% else %>
<p>This app has not created any webhooks for this Shop. Add webhooks to your ShopifyApp initializer if you need webhooks</p>
<% end %>
<h2>Template</h2>
<% if @templates.present? %>
<% @templates.each do |template| %>
<li><%= template.key %></li>
<li><% template.value %></li>
<% end %>
<% else %>
<p>This app has not created any webhooks for this Shop. Add webhooks to your ShopifyApp initializer if you need webhooks</p>
<% end %>
Я также попробовал следующие варианты на моем контроллере, но не повезло
@templates = ShopifyAPI::Asset.find(:all, params: {"theme_id": 194896516, "asset[key]": 'layout/theme.liquid'})
Также
@templates = ShopifyAPI::Asset.find('layout/theme.liquid',params: {"theme_id": 194896516})
Я правильно установил область действия для read_themes. Я проверил документацию и попробовал тоже, но не смог. Есть ли что-то, что я пропускаю или шаблон изменился за эти годы, так как примеры на документации не работают.
Ошибка, которую я увидел в приложении: https://prnt.sc/jgglbf.
Я надеюсь, что кто-нибудь может мне помочь с этим. Очень ценю изучение этого вопроса.
Спасибо