HotProfile_GAS_image

[HotProfileAPI-実装編③]HotProfile(ホットプロファイル)APIを利用して、名刺データをGASでスプレッドシートに表示してみた

みなさん、こんにちは!
現役エンジニアの”よし”です。

前回前々回は、ホットプロファイルのAPIの接続部分についてとAPIで取得したデータをスプレッドシートに反映するには、欲しいデータを2次元配列にまとめる方法についてざっくりご紹介しました。

[HotProfileAPI-実装編②]HotProfile(ホットプロファイル)APIを利用して、名刺データをGASでスプレッドシートに表示してみた

今回は実装編③として、ホットプロファイルAPIで取得したのち、成形したデータをスプレッドシートにセットする方法についてご紹介いたします。

前々回のおさらい

API接続部分の実装の完成形

前回はHotProfile(ホットプロファイル)APIの接続部分の実装についてご紹介いたしました。
完成形のコードは以下です。

function post() {
  let url = 'https://hammock.hotprofile.biz/rest_api/v1/business_cards/get_entry_list'

  let header = {
    "Content-Type" : "application/x-www-form-urlencoded"
  };
 
  let requestBody = {
    "api_key": "この部分にはホットプロファイルAPIキーを設定してください"
  };

  let options = {
     "method" : "POST",
     "header" : header,
     "payload": requestBody
  };

  // APIを実行
  let response = UrlFetchApp.fetch(url,options);
  let jsonData = JSON.parse(response);

  return jsonData;
}

前回のおさらい

データ成形部分の実装の完成形

APIで取得したデータをスプレッドシートに反映するには、欲しいデータを2次元配列にまとめる実装をしました。
完成形のコードは以下です。

function replaceData(businessCardsData) {
  let data = [];
  
  // 取得した名刺データを2次元配列化
  for(let i = 0; i < businessCardsData.length; i++) {
    data.push([businessCardsData[i]["client_name"],
              businessCardsData[i]["id"],
              businessCardsData[i]["name"],
              businessCardsData[i]["tel"],
              businessCardsData[i]["email"],
              businessCardsData[i]["created_at"],
              businessCardsData[i]["updated_at"],
    );
  };

  return data;
}

上記コードは、ホットプロファイルAPIで取得したレスポンスデータから名刺情報を取り出し、2次元配列にしています。

また、上記の2つのコードを書いただけではただ二つのfunctionが存在するだけになってしまうので、この2つのfunctionをつなげるためのmainとなるfunctionを実装しました。
コードは以下です。

function getData() {
  // POST API
  let responseData = post();
  // 名刺データの取得
  let businessCardsData = responseData["business_cards"];

  // データの成形
  let data = replaceData(businessCardsData);
};

スプレッドシートにAPIで取得したデータをセットする

今回は、getData()をもとに、成形データをスプレッドシートにセットする部分について説明していきましょう。
実装の完成形は以下になります。

function updateAllList(data){
  // シートの取得
  let ss = SpreadsheetApp.openById(SpreadsheetApp.getActiveSpreadsheet().getId());
  let sheet = ss.getSheetByName("ここにデータをセットするシート名を書く");
  // データを入力する範囲を設定
  let lastRow = data.length;
  sheet.getRange(2,1,lastRow,data[0].length).setValues(data);
};

だいぶ簡略化して実装しております。笑
ミソはデータ入力の範囲設定の部分だと自負しております。笑(ぶっちゃけ自負するほどのことではないですが…笑)

最終的に完成したコードの全容はこちら!

getData()を実行することで、ホットプロファイルAPIによるデータの取得から、スプレッドシートへのデータセットまで行うことができます。

function getData() {
  // POST API
  let responseData = post();
  // 名刺データの取得
  let businessCardsData = responseData["business_cards"];

  // データの成形
  let data = replaceData(businessCardsData);

  // データのセット
  updateAllList(data);
};

function post() {
  let url = 'https://hammock.hotprofile.biz/rest_api/v1/business_cards/get_entry_list'

  let header = {
    "Content-Type" : "application/x-www-form-urlencoded"
  };
 
  let requestBody = {
    "api_key": "この部分にはホットプロファイルAPIキーを設定してください"
  };

  let options = {
     "method" : "POST",
     "header" : header,
     "payload": requestBody
  };

  // APIを実行
  let response = UrlFetchApp.fetch(url,options);
  let jsonData = JSON.parse(response);

  return jsonData;
}

function replaceData(businessCardsData) {
  let data = [];
  
  // 取得した名刺データを2次元配列化
  for(let i = 0; i < businessCardsData.length; i++) {
    data.push([businessCardsData[i]["client_name"],
              businessCardsData[i]["id"],
              businessCardsData[i]["name"],
              businessCardsData[i]["tel"],
              businessCardsData[i]["email"],
              businessCardsData[i]["created_at"],
              businessCardsData[i]["updated_at"],
    );
  };

  return data;
}

function updateAllList(data){
  // シートの取得
  let ss = SpreadsheetApp.openById(SpreadsheetApp.getActiveSpreadsheet().getId());
  let sheet = ss.getSheetByName("ここにデータをセットするシート名を書く");
  // データを入力する範囲を設定
  let lastRow = data.length;
  sheet.getRange(2,1,lastRow,data[0].length).setValues(data);
};

 

まとめ

いかがでしたでしょうか?

とてもざっくりではありますが、実装編③として、ホットプロファイルAPIで取得したのち、成形したデータをスプレッドシートにセットする方法についてご紹介いたしました。

最終的に完成したコードをコピーしてAPIキーとシート名の部分を変更すれば、データの取得はできちゃいます。。!
ぜひ参考になれば幸いです。

Google Workspaceを活用している場合はGoogle Apps Scriptを覚えると業務の効率化および自動化ができます。
Google Apps Scriptが学べるスクールはコチラで紹介しています。よかったら見てみてください。

Google Apps Scriptを学べるスクール3選

Google Apps Scriptが学べたらコチラの記事で収益化してみてはいかがでしょうか?

Google Apps Scriptのプロが教える!成功するGAS副業完全ガイド

以上、最後までお読みいただきありがとうございました。

HotProfile_GAS_image
最新情報をチェックしよう!