Partager via


Utiliser les appels externes de récupération dans les scripts Office

Ce script obtient des informations de base sur les dépôts GitHub d’un utilisateur. Il montre comment utiliser fetch dans un scénario simple. Pour plus d’informations sur l’utilisation fetch ou d’autres appels externes, consultez Prise en charge des appels d’API externes dans les scripts Office. Pour plus d’informations sur l’utilisation d’objets JSON , comme ce qui est retourné par les API GitHub, consultez Utiliser JSON pour transmettre des données vers et à partir de scripts Office.

En savoir plus sur les API GitHub utilisées dans les informations de référence sur l’API GitHub. Vous pouvez également voir la sortie d’appel d’API brute en vous rendant https://api.github.com/users/{USERNAME}/repos dans un navigateur web (veillez à remplacer l’espace réservé {USERNAME} par votre ID GitHub).

Exemple d’obtention d’informations sur les référentiels

Exemple de code : Obtenir des informations de base sur les dépôts GitHub de l’utilisateur

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
}

Vidéo de formation : Comment effectuer des appels d’API externes

Regardez Sudhi Ramamurthy parcourir cet exemple sur YouTube.