Comment développer l'application rails pour acheter avec ScriptTags

J'ai une application shopifiée déployée à Heroku, développée dans Rails. J'ai besoin d'appeler une fonction javascript à partir de n'importe quel client de shopify store. J'ai lu cet article ( http://www.shopify.com/technology/3033852-shopify-api-update-scripttags-javascript-insertion ), mais je ne le comprends pas …

Où dois-je mettre ce code?

HTTP POST http://their-shop.myshopify.com/admin/scripttags <?xml version="1.0" encoding="UTF-8"?> <script-tag> <src>http://example.com/your-awesome-script.js</src> <event>onload</event> </script-tag> 

Quelle devrait être la balise src (pour mon application de rails déployés), et où devrais-je mettre la fonction d'appel javascript?

Cela pourrait aider.

Shopify Rails App

Vous devez simplement authentifier l'utilisateur, puis vous devez prendre le jeton généré par Shopify et l'enregistrer dans votre base de données. Plus tard, faites:

 ShopifyAPI::Base.site = token 

Puis installez le script en utilisant:

 s = ShopifyAPI::ScriptTag.create(:events => "onload",:src => "your javascript url") 

Et vous avez terminé!

C'est ce que j'ai fait pour le faire fonctionner:

Dans le fichier sessions_controller.rb situé dans l'application> contrôleurs

Après ça

 def show if response = request.env['omniauth.auth'] sess = ShopifyAPI::Session.new(params[:shop], response[:credentials][:token]) session[:shopify] = sess 

J'ai ajouté

 ShopifyAPI::Base.activate_session(sess) ShopifyAPI::ScriptTag.create(:event => "onload", :src => "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js") 

Vous devez remplacer https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js dans le code ci-dessus avec votre chemin de fichier js absolu.

Ensuite, dans le fichier omniauth.rb situé dans config> initialiseurs, assurez-vous d'ajouter write_script_tags à la portée, c.-à-d.

 :scope => 'write_script_tags', 

Et vous devrez peut-être redémarrer votre serveur de rails et réinstaller l'application afin que ces privilèges aient été accordés. Cela devrait faire l'affaire!