みなさん、こんにちは!
現役エンジニアの”よし”です。
前回、ホットプロファイルのAPIの接続部分を、GASで実装する方法についてざっくりご紹介しました。
[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接続部分の実装で、jsonDataについてデバッグしてみると、以下の画像のように情報が取得できていることがわかります。
データは取得できているのですが、単純に名刺情報のみを表示するには、business_cardsの中身を取り出す必要があります。
(データ成形部分の実装について説明後、こちらについては改めて触れます。)
データ成形部分の実装
今回は、APIで返ってきたレスポンスデータをスプレッドシートにセットするためのデータ成形GASのコードを実装していきましょう。
実装の完成形は以下になります。
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次元配列にしています。
また、APIで取得できる項目はもっとたくさんありますが、今回は、会社名やお客さま氏名など最小限のデータにとどめております。
2次元配列については、別の記事ですがこちらでも触れていますので、ぜひご覧ください…!
API接続部分とデータ成形のfunctionをつなげる
今まで書いたコードをおさらいすると、post()でAPIの接続部分のコードを実装しました。
次にreplaceData()でAPIで返ってきたレスポンスデータをスプレッドシートにセットするためのデータ成形の部分のコードを実装しました。
このままではただ二つのfunctionが存在するだけになってしまうので、この2つのfunctionをつなげるためのmainとなるfunctionを実装します。
コードは以下です。
function getData() {
// POST API
let responseData = post();
// 名刺データの取得
let businessCardsData = responseData["business_cards"];
// データの成形
let data = replaceData(businessCardsData);
};
先程ご紹介した「レスポンスデータについて」でも触れたように、デバッグしてみるとpost()
で返却されるデータから単純に名刺情報のみを表示するには、business_cardsの中身を取り出す必要があります。
そのためここの部分で、取得したレスポンスデータから名刺情報を取得しています。
let businessCardsData = responseData["business_cards"];
その取得したデータを次の部分でreplaceData()
へ引数としてデータを渡し、スプレッドシートへセットするためのデータ成形をおこなっています。
let data = replaceData(businessCardsData);
まとめ
いかがでしたでしょうか?
とてもざっくりではありますが、実装編②として、ホットプロファイルAPIで取得したデータを成形する方法についてご紹介いたしました。
APIで取得したデータをスプレッドシートに反映するには、欲しいデータを2次元配列にまとめる必要がありました。
次回はついに、取得したデータをスプレッドシートに値をセットする部分の実装をご紹介していきますのでお楽しみに。。!
Google Workspaceを活用している場合はGoogle Apps Scriptを覚えると業務の効率化および自動化ができます。
Google Apps Scriptが学べるスクールはコチラで紹介しています。よかったら見てみてください。
Google Apps Scriptが学べたらコチラの記事で収益化してみてはいかがでしょうか?
以上、最後までお読みいただきありがとうございました。