Регистрационная палата, извлечение данных из ответа (rest API) - PullRequest
0 голосов
/ 02 августа 2020

Я использую Companies House API с небольшим скриптом приложений Google. Я хочу получить номера компаний для списка компаний на листе.

Кажется, я не могу получить доступ к ключам / значениям ответа, может ли кто-нибудь помочь?

function findPayeeCHInfo() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1")
  var optionsheet = ss.getSheetByName('Options');
  var payee = sheet.getRange("F6").getValue();
  var my_api_key = optionsheet.getRange('C2').getValue();

//Logger.log(my_api_key);

var headers = {

"Authorization": "Basic " + Utilities.base64Encode(my_api_key+":"),

}

var params = {
"method":"GET",
"headers":headers,
muteHttpExceptions: true,
};

var url = "https://api.companieshouse.gov.uk/search/companies?q=" + payee;

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

Logger.log(response);

} 

мой регистратор говорит:

[20-08-02 16: 14: 00: 624 BST] Выходной файл журнала слишком велик. Обрезка вывода. {"kind": "search # companies", "total_results": 4163, "items_per_page": 20, "start_index": 0, "page_number": 1, "items": [{"description": "01026167 - Зарегистрировано на 4 октября 1971 г. "," snippet ":" BARCLAYS BANK INTERNATIONAL "," address_snippet ":" 1 Churchill Place, London, E14 5HP "," соответствует ": {" title ": [1,8,10,13]," snippet ": [1,8,10,13]}," address ": {" postal_code ":" E14 5HP "," address_line_1 ":" Churchill Place "," помещения ":" 1 "," address_line_2 ":" Лондон "}," kind ":" searchresults # company "," description_identifier ": [" incorporated-on "]," title ":" BARCLAYS BANK PL C "," company_type ":" pl c ", "links": {"self": "/ company / 01026167"}, "company_number": "01026167", "company_status": "active", "date_of_creation": "1971-10-04"}, {"description_identifier" : ["incorporated-on"], "адрес": {"страна": "Англия", "населенный пункт": "Лондон", "помещение": "1", "почтовый_ индекс": "E14 5HP", "address_line_1" : "Churchill Place"}, "kind": "searchresults # company", "snippet": "BARCLAYS UK AND EUROPE", "address_snippet": "1 Churchill Place, London, England, E14 5HP", "соответствует ": {" snippet ": [1,8]," title ": [1,8,10,13]}," description ":" 09740322 - зарегистрировано 19 августа 2015 г. "," company_number ":" 09740322 ", "date_of_creation": "2015-08-19", "company_status": "active", "company_type": "pl c", "links": {"self": "/ company / 09740322"}, "title ":" BARCLAYS BANK UK PL C "}, {" title ":" ZEDRA TRUST

Я использовал разные методы адресации значений объектов, и они либо не распознаются, верните нулевое значение или вернуть все, что вы видите выше.

Я даже не был уверен, что это объект, поэтому попытался адресовать его как массив, но безуспешно. Согласно документации, это подмножество «элементов», но когда я пытаюсь зарегистрировать response.items.company_number, я получаю

TypeError: невозможно прочитать свойство «company_number» неопределенного значения -

Представление ресурса здесь:

https://developer.companieshouse.gov.uk/api/docs/search-overview/CompanySearch-resource.html

любые указатели будут с благодарностью получены.

1 Ответ

1 голос
/ 02 августа 2020
var httpResponse = UrlFetchApp.fetch(url,params);

var text = httpResponse.getContentText();

var object = JSON.parse(text);

var compName = object.items[0]['company_name'];

Logger.log(compName);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...