【중급자용】HubspotAPI를 GAS로 두드릴 수 있을 때까지
18945 단어 HubspotGoogleAppsScript
이제 이번에는 Hubspot 데이터를 Google 스프레드시트에 내보내는 단계를 설명합니다.
Hubspot이란?
간단히 설명하면 Hubspot은 '고객 관리 시스템'을 중심으로 '마케팅' '판매' 활동을 효율화하는 소프트웨어입니다. (그렇지?)
Hubspot API 정보
개발자 문서
HubSpot API Docs
API를 처음 만지는 방향으로 해설하면,
API는 "앱과 앱을 연결하는 메커니즘"입니다.
이번의 목적은 「Hubspot ⇔ Google 스프레드시트」의 제휴를 하기 위해서 사용해 갑니다.
Hubspot API가 할 수있는 일
가능합니다.
Hubspot API를 사용해 봅시다.
연락처를 예제로 이동해 봅니다.
CRM API | 연락처 방문
그러면 화면 오른쪽 중앙의 「응답」곳에 콘택트 정보가 나왔는지 생각합니다.
초기설정이라면 리스트로 10건분의 콘택트군요.
이와 같이 API 키가 있으면, 정보를 Hubspot 외부로부터 취득할 수 있는 것을 알았습니다.
Google 스프레드시트와 협력
그런 다음 GAS를 사용하여 스프레드 시트에 정보를 표시하고 싶습니다.
contact.gs
function myFunction() {
}
위와 같이 표시되고 있다고 생각하므로, 그 안에 코드를 써 갑니다.
contact.gs
function contacts() {
//対象スプレッドシートのID
const spreadsheet = SpreadsheetApp.openById('*********************************');
const sheetHubspot = spreadsheet.getSheetByName('Hubspot'); //任意のタブ名をつける
//HubspotのAPI接続設定
const API_KEY = "**************************"; //先程取得したAPIキー
//取得する列と行
const lastColumn = 2; //コンタクトのプロパティの数
const lastRow = 10; //コンタクトの個数
let contactList = []; //コンタクトリストの配列
//Hubspotからコンタクトを取得
let url = "https://api.hubapi.com/crm/v3/objects/contacts/search" + "?hapikey=" + API_KEY;
let headers = {"content-type" : "application/json"}
let payload = {
"properties": ["firstname,lastname"], //取得するプロパティ
"limit": lastRow,
}
payload = JSON.stringify(payload);
let options = {
"method": 'POST',
"headers": headers,
"payload": payload,
"muteHttpExceptions": true
};
let response = UrlFetchApp.fetch(url, options);
//スプレッドシートにマッピング
if(response){
//JSON→配列化
let responseArr = JSON.parse(response.getContentText());
//連想配列からkeyが"results"の中身を取得
let arrContacts = responseArr.results;
//連想配列からkeyが"properties"の中身を配列形式で取得
let arrProperties = arrContacts.map(obj => obj.properties);
//コンタクトリストの配列
for (const elem of arrProperties) {
//コンタクトの配列
let contactItem = [];
//コンタクトの姓
contactItem.push(elem["lastname"]);
//コンタクトの名
contactItem.push(elem["firstname"]);
//配列に格納
contactList.push(contactItem);
}
//シートへの記入
sheetHubspot.getRange(2, 1, contactList.length, lastColumn).setValues(contactList);
}
}
이제 10건 표시될 것입니다!
코드 해설
사전 준비
//対象スプレッドシートのID
const spreadsheet = SpreadsheetApp.openById('*********************************');
const sheetHubspot = spreadsheet.getSheetByName('Hubspot'); //任意のタブ名をつける
//HubspotのAPI接続設定
const API_KEY = "**************************"; //先程取得したAPIキー
스프레드시트의 탭 이름은 좋아하는 이름을 붙여 OK입니다.
시트 ID는
https://docs.google.com/spreadsheets/d/**********************************************/
의 *** 부분입니다.연락처 검색
//取得する列と行
const lastColumn = 2; //コンタクトのプロパティの数
const lastRow = 10; //コンタクトの個数
let contactList = []; //コンタクトリストの配列
//Hubspotからコンタクトを取得
let url = "https://api.hubapi.com/crm/v3/objects/contacts/search" + "?hapikey=" + API_KEY;
let headers = {"content-type" : "application/json"}
let payload = {
"properties": ["firstname,lastname"], //取得するプロパティ
"limit": lastRow,
}
payload = JSON.stringify(payload);
let options = {
"method": 'POST',
"headers": headers,
"payload": payload,
"muteHttpExceptions": true
};
let response = UrlFetchApp.fetch(url, options);
API 유형 선택
let url = "https://api.hubapi.com/crm/v3/objects/contacts/search" + "?hapikey=" + API_KEY;
API의 종류를 선택.Hubspot 문서
/crm/v3/objects/contacts
/crm/v3/objects/contacts/{contactId}
등이라고 써 있는 곳을 참고로 하고, 실행하고 싶은 동작을 선택합니다.
이 때의 「POST」 「GET」라고 써 있는 곳과,
"method": 'POST',
를 맞춥니다.속성 선택
"properties": ["firstname,lastname"],
Hubspot 속성의 내부 값을 설명하여 얻을 수 있습니다.
스프레드시트에 매핑
//スプレッドシートにマッピング
if(response){
//JSON→配列化
let responseArr = JSON.parse(response.getContentText());
//連想配列からkeyが"results"の中身を取得
let arrContacts = responseArr.results;
//連想配列からkeyが"properties"の中身を配列形式で取得
let arrProperties = arrContacts.map(obj => obj.properties);
//コンタクトリストの配列
for (const elem of arrProperties) {
//コンタクトの配列
let contactItem = [];
//責任者の姓
contactItem.push(elem["lastname"]);
//責任者の名
contactItem.push(elem["firstname"]);
//配列に格納
contactList.push(contactItem);
}
//シートへの記入
sheetHubspot.getRange(2, 1, contactList.length, lastColumn).setValues(contactList);
}
취득한 데이터는 JSON 형식이므로,
배열합니다.
또 배열 형식이 연상 배열이며,
내용의 구성이 다음과 같기 때문에,
{ result: {
properties: {
lastname: '山田',
firstname: '太郎'
}
};
properties 의 내용을 통상 배열의 형태로 취득합니다.
['山田','太郎']
마지막으로 시트에 기입해 완성입니다!
Reference
이 문제에 관하여(【중급자용】HubspotAPI를 GAS로 두드릴 수 있을 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jeq/items/07a429d5fa7c0b692c78텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)