Поделиться через


Использование внешних вызовов Fetch в сценариях Office

Этот скрипт получает основные сведения о репозиториях GitHub пользователя. Здесь показано, как использовать fetch в простом сценарии. Дополнительные сведения об использовании fetch или других внешних вызовах см. в статье Поддержка внешних вызовов API в сценариях Office. Сведения о работе с объектами JSON , например о том, что возвращает API GitHub, см. в статье Использование JSON для передачи данных в скрипты Office и из нее.

Дополнительные сведения об используемых API GitHub см. в справочнике по API GitHub. Вы также можете просмотреть необработанные выходные данные вызова API, перейдя https://api.github.com/users/{USERNAME}/repos в веб-браузере (обязательно замените заполнитель {USERNAME} идентификатором GitHub).

Пример получения сведений о репозиториях

Пример кода: получение основных сведений о репозиториях GitHub пользователя

async function main(workbook: ExcelScript.Workbook) {
  // Call the GitHub REST API.
  // Replace the {USERNAME} placeholder with your GitHub username.
  const response = await fetch('https://api.github.com/users/{USERNAME}/repos');
  const repos: Repository[] = await response.json();

  // Create an array to hold the returned values.
  const rows: (string | boolean | number)[][] = [];

  // Convert each repository block into a row.
  for (let repo of repos) {
    rows.push([repo.id, repo.name, repo.license?.name, repo.license?.url]);
  }
  // Create a header row.
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange('A1:D1').setValues([["ID", "Name", "License Name", "License URL"]]);

  // Add the data to the current worksheet, starting at "A2".
  const range = sheet.getRange('A2').getResizedRange(rows.length - 1, rows[0].length - 1);
  range.setValues(rows);
}

// An interface matching the returned JSON for a GitHub repository.
interface Repository {
  name: string,
  id: string,
  license?: License
}

// An interface matching the returned JSON for a GitHub repo license.
interface License {
  name: string,
  url: string
}

Обучающее видео: как выполнять вызовы внешних API

Посмотрите Судхи Рамамурти, пройдите этот пример на YouTube.