2017-03-21 135 views
0

好吧,我是VERRY VERRY VERRY新主题,所以请放轻松点。我所做的是创建一个wordpress woocommerce网站。我现在想要做的是从node.js中的wordpress网站获取产品数据。如果我已经正确地理解了一切,我首先必须认证自己。在node.js中验证WooCommerce REST API

首先我安装了WooCommerce包:

npm install --save woocommerce-api 

然后我试图Authenticante这样的:

var WooCommerce = require('woocommerce'); 

var wooCommerce = new WooCommerce({ 
    consumerKey: 'ck_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
    consumerSecret: 'cs_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
    url: 'http://localhost/wordpress', 


}); 

我意识到这是一个柠开放的问题,我可能会从上远远的正确的轨道上。但我会理解一些提示或指导。

谢谢!

回答

1

嗯,你npm安装'woocommerce-api',所以你需要这个,而不是'woocommerce'。

var WooCommerceAPI = require('woocommerce-api'); 

请参阅文档,但它看起来像您大多正确实例化。如果您使用的WP REST API,您需要包括键wpAPI和版本,按照该库的文档:https://www.npmjs.com/package/woocommerce-api

现在,如果你想要得到的产品,你会做这样的事情:

wooCommerce.getAsync('products').then(function(result) { 
    return JSON.parse(result.toJSON().body); 
}); 

或者,您可以使用.get代替.getAsync,如果您希望使用回调而不是承诺。

+0

谢谢!然而,有什么办法可以确保你可以通过认证吗?我没有收到任何错误消息,但我没有设法获得产品。我得到“Undefiend”或不正确的URL。如果我浏览网址,它会显示我所有的json数据。 –

+0

您应该可以将.catch(function(e){console.log(e)})添加到getAsync请求中。如果出现任何错误,您应该能够以这种方式查看它们。 http://bluebirdjs.com/docs/api/catch.html –