1

Wommcommerce在更新產品或訂購產品時觸發Webhook。我正在嘗試使用Google Apps腳本(GAS)來發現Webhook,並將其作爲WebApp發佈。我最終試圖實現的是將收到的訂單寫入Google Spreadsheet。解析Woocommerce Webhook(JSON)

我無法從這些webhook中獲得正確的(或至少某些)數據。我嘗試了不同的方式將數據寫入工作表,但是我唯一遇到的工作表是'未定義'。老實說,我不知道如何處理JSON數據。我testfunction現在是:

function doPost(e){ 
    var doc =  DocumentApp.openById('myDocId'); 
    var jstring = Utilities.jsonStringify(e); 
    doc.appendParagraph(jstring); 
} 

當射擊網絡掛接(順序更新)我得到的文檔中的下列輸出:

{ 「參數」:{} 「的contextPath」: 「」, 「CONTENTLENGTH」:1523 「的queryString」:空, 「參數」:{}, 「POSTDATA」: 「文件上傳」}

顯然不是分析所有,但我試過(如getContentText())沒沒有工作。網絡掛接,登錄Woocommerce告訴我,這是送:

{ 「產品」:{ 「稱號」: 「testprodukt」, 「ID」:136, 「created_at」:「2015-10-06T13: 15:38Z 「 」的updated_at「: 」2015-10-09T15:19:04Z「, 」類型「: 」簡單「, 」狀態「: 」發佈「, 」下載「:真實的, 」虛「:真」永久鏈接「:」http://MYDOMAIN/produkt/testprodukt/「,」sku「:」「,」price「:」5.00「,」regular_price「:」5.00「,」sale_price「:null,」price_html「:」€5,00「 :假的, 「tax_status」: 「納稅」, 「tax_class」: 「」, 「managing_stock」:假的, 「stock_quantity」: 「」, 「IN_STOCK」:真實的, 「backorders_allowed」:假的, 「延期交貨」:假」 sold_individually 「:假的,」 可購買 「:真正的」 特色 「:假的,」 可見 「:真實的,」 catalog_visibility 「:」 可見」, 「on_sale」:假的, 「product_url」: 「」, 「BUTTON_TEXT」: 「」 , 「重量」:NULL, 「尺寸」:{ 「長度」: 「」, 「寬度」: 「」, 「高度」: 「」, 「單元」: 「釐米」}, 「shipping_required」:假「shipping_taxable 「:真正,「shipping_class」:「」,「shipping_class_id」:null,「description」:「

somedescription

n」,「short_description」:「」,「reviews_allowed」:false,「average_rating」:「0.00」,「rating_count」: 0 「related_ids」:[], 「upsell_ids」:[], 「cross_sell_ids」:[], 「PARENT_ID」:0, 「類別」:[], 「標籤」:[], 「圖像」:[{」 id「:0,」created_at「:」2015-10-09T15:19:05Z「,」updated_at「:」2015-10-09T15:19:05Z「,」src「:」 http://MYDOMAIN/wp-content/plugins/woocommerce/assets/images/placeholder.png「,」title「:」 Platzhalter」, 「ALT」: 「Platzhalter」, 「位置」:0}], 「featured_src」:假, 「屬性」:[], 「下載」:[], 「download_limit」:0 「download_expiry」:0 「download_type」: 「」, 「purchase_note」: 「」, 「TOTAL_SALES」:7, 「變體」:[], 「親本」:[]}}

我正在尋找一個提示,鏈接,例子,向正確的方向推進如何從webhook獲取數據。

+0

嗨,你有什麼想法從webhooks從哪裏找到一些示例數據?我必須實現我客戶的eshop的webhook,所以我不能「創建新產品」或「新訂單」並手動測試 –

+0

@did你使用過google spreasheet庫嗎?我怎樣才能爲我的WordPress網站實現相同的功能? – user3288891

回答

0

正是在e.postData.content

還可以使用JSON.parse,而不是工具。

+0

謝謝,我明白了! – Albrecht

2

感謝來自瑞爾的幫助以及plus.google我想通了。這裏是我的代碼作爲一個例子,也許它可以幫助:

function doPost(request) {  

var json = request.postData.getDataAsString(); 
var obj = JSON.parse(json);  


// getting some of the Woocommerce data just as an example 
// Hook was fired after order.created 
var id = obj.order.id; 
var orderNumber = obj.order.order_number; 
var payMethod = obj.order.payment_details.method_title;  


// write data in a document, not useful, but straightforward for testing 

var doc =  DocumentApp.openById('myDocumentId'); 
doc.appendParagraph("Id: " + id); 
doc.appendParagraph("orderNumber: " + orderNumber); 
doc.appendParagraph("payMethod: " + payMethod); 

} 

結果應該是這樣的:

編號:171

訂單編號:171

payMethod:每Nachnahme