2015-03-27 7 views
1

Я пытаюсь передать данные из списка продуктов из Magento API в Google Spreadsheet. Для Magento API аутентификации не требовалось, поскольку я возвращал данные в качестве Гость. API отлично работает с RestClient.Ошибка 500 на UrlFetchApp

Однако при извлечении ресурса REST из скрипта приложений Googe произошла ошибка 500.

Exception: Request failed for 
http://mymagentohost/api/rest/products?limit=2 
returned code 500. Truncated server response: Service temporary 
unavailable (use muteHttpExceptions option to examine full response) 

Это мой Google Apps Script:

function myscript() { 
    var url = "http://mymagentohost/api/rest/products?limit=2" 
    var response = UrlFetchApp.fetch(url); 

    var out = JSON.parse(response.getContentText()); 
    var doc = SpreadsheetApp.create("Product Info"); 
    var cell = doc.getRange('a1'); 
    var index = 0; 
    for (var i in out) { 
    var value = out[i]; 
    cell.offset(index, 0).setValue(i); 
    cell.offset(index, 1).setValue(value); 
    index++; 
} 

Любые идеи?

+0

Банкомат здесь не работает, используя https://www.hurl.it/. – Kriggs

+0

Спасибо, но я хочу, чтобы это сработало с помощью Google Apps Script. – mikeinnz

+0

Я знаю, но чтобы он работал с ApsScript, мне нужно заставить его работать на специальном скручиваемом сайте раньше, я всегда использую его. Вы проверили на любом другом сайте Curl, если работает адрес «http: // mymagentohost/api/rest/products? Limit = 2»? Кроме того, google не похож на небезопасные http-ссылки. – Kriggs

ответ

1

Эй хитрость заключается в том, чтобы добавить следующие заголовки к вашему запросу

var url = "http://mymagentohost/api/rest/products?limit=2" 

var params = { 
    headers: { 'Content-Type': "application/json", 'Accept': "application/json"}, 
    muteHttpExceptions: true, 
    method: "GET", 
    contentType: "application/json", 
    validateHttpsCertificates: false, 
}; 

var response = UrlFetchApp.fetch(url, params); 

Поверьте ключевой PARAMS для Magento, чтобы не возвращать 500 «Service временно недоступен» являются Content-Type и Accept заголовков, но весь Params упоминался в примере полезны, YMMV.

+0

Спасибо. Это сработало для меня (даже оставляя строки 'muteHttpExceptions' и' validateHttpsCertificates'). – Ryan

Смежные вопросы