tables create cadena aleatoria javascript meteor shopify

javascript - create - js md5 hash



meteor-shopify: cadena esperada para ser un hash (2)

Creo que puede haber un error en el paquete. ¿Has utilizado con éxito la API para POST antes? No estoy seguro de si el problema está en el alcance de todas las solicitudes POST, o solo para algunas (usando el impresionante paquete froatsnook).

He creado un problema donde también me enfrenté a una solicitud POST que devolvía "string espera ser un hash".

Estoy eludiendo temporalmente este problema al usar HTTP.Post simple y pasar un objeto con lo que la API de Shopify solicita específicamente:

var options = { data: params, headers: { ''X-Shopify-Access-Token'': Meteor.user().profile.shopifyAccessToken } }; var newScript = HTTP.post("https://" + Meteor.user().profile.shopName + ".myshopify.com/admin/script_tags.json" , options);

Estoy usando froatsnook: shopify tratando de modificar los metacampos de una colección personalizada.

Servidor JS

/** * Modify Shopify Custom Collection Metafields * @request PUT /admin/custom_collections/#{id}.json * * @param {Number} collection_id * @param {Object} collection_data * @param {Function} callback */ modifyShopifyCustomCollectionMetafields: function(collection_id, collection_data, callback) { var meta = ShopifyAPI.modifyCustomCollection({ id: collection_id, custom_collection : JSON.stringify( collection_data ) }) if ( AdminConfig.debug.server ) console.log( ''modifyShopifyCustomCollectionMetafields'', meta ) if ( callback ) callback( meta ) return meta; },

Cliente JS

Meteor.call(''modifyShopifyCustomCollectionMetafields'', collection_id, { ''id'': collection_id, ''metafields'' : [ { ''key'' : ''color_primary'', ''value'' : design_settings.colors.primary, ''value_type'' : ''string'', ''namespace'' : ''store'', }, { ''key'' : ''color_dark'', ''value'' : design_settings.colors.primary_dark, ''value_type'' : ''string'', ''namespace'' : ''store'', }, { ''key'' : ''color_light'', ''value'' : design_settings.colors.primary_light, ''value_type'' : ''string'', ''namespace'' : ''store'', }, ] }, function (data) { console.log( ''Clientside callback'', data ) })

Todo parece estar bien, pero luego lo obtengo en la consola (servidor):

PUT https://<MY_STORE_NAME>.myshopify.com/admin/custom_collections/42393729.json?custom_collection={"id":"42393729","metafields":[{"key":"color_primary","value":"#5c28a4","value_type":"string","namespace":"store"},{"key":"color_dark","value":"#401a74","value_type":"string","namespace":"store"},{"key":"color_light","value":"#a42da8","value_type":"string","namespace":"store"}]}

Excepción al invocar el método ''modifyShopifyCustomCollectionMetafields'' Error: error [400] {"errors": {"custom_collection": "cadena esperada para ser un Hash"}}

Tenga en cuenta que si JSON.stringify(...) del servidor JS, intentará enviar [Object object] en el URI de solicitud.

¿Algunas ideas?


Ver comentario en la pregunta de @ilrein para más detalles.

Parece ser un problema con el paquete en sí.

Aquí hay una API cliente simple (para aplicaciones privadas con autenticación básica) que hice para eludir el problema: github gist