🖥
GASでAPIから取得したデータをスプレッドシートに挿入する
初めに、スプレッドシートを作成します。
上のメニューから 拡張機能 → Apps Scriptを選択
Apps Scriptを選択するとこのような画面に移動します
処理をが動くかテストする
APIからデータを取得
- リクエストURLを定義する
// jsonplaceholderのダミーAPI(実際にに叩けます)
var requestUrl = "https://jsonplaceholder.typicode.com/posts";
- 
URLを元ににfetchをする
 ※詳しくはこちらに書いてあります↓
 https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app
var response = UrlFetchApp.fetch(requestUrl);
- 
レスポンスからcontentを取得して、JSON.parseする
 レスポンスからの情報の取得はgetContentText()メソッドを使うことで取得できます。
var res = JSON.parse(response.getContentText());
上記の工程をまとめると下記のコードになると思います。これでAPIからデータの取得は完了です。
function fetchValues() {
  var requestUrl = "https://jsonplaceholder.typicode.com/posts";
  var response = UrlFetchApp.fetch(requestUrl);
  var res = JSON.parse(response.getContentText());
};
スプレッドシートのセルに挿入する
- resから二次元配列を作成する
  var values = res.map(content => {
    return [
      content.title,
      content.id,
    ]
  });
二次元配列とは下記のような配列のことです。
// 例
[["田中", "12345"], ["佐々木", "34567"]....];
- 
現在のスプレッドシートを取得する。
 スプレッドシートClass → アクティブなスプレッドシートを取得 → アクティブなシートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
- 
取得したシートのセルに挿入する
 getRange()は指定した範囲のセルを取得できます。
 setValues()セルに引数に入れたデータを挿入してくれます(二次元配列は自動的にセルごとに展開される)
 ※挿入したいデータの数と、セルの指定が相違していると下記のエラーが出るのでデータの数をセルの指定を合わせておくこと
 
// valuesのlength分
sheet.getRange(`A1:B${values.length}`).setValues(values);
まとめ
結構簡単にできるので、軽い情報収集など、やってみてはいかがでしょうか?😊
参考になれば幸いです。
作成したコードのまとめです↓↓↓
function fetchValues() {
  var requestUrl = "https://jsonplaceholder.typicode.com/posts";
  var response = UrlFetchApp.fetch(requestUrl);
  var res = JSON.parse(response.getContentText());
  var values = res.map(content => {
    return [
      content.title,
      content.id,
    ]
  });
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.getRange(`A1:B${values.length}`).setValues(values);
};
実行結果









Discussion