手順としては
① APIキーの取得をしてプロパティストアに保存
② ①で取得したAPIキーを使ってAPIをたたく
という手順になります。
APIキーは取得後60分間のみ有効なので注意が必要です。
下記のURLを参考にGASでコードを書くと下記の様になります。
https://developer.salesforce.com/docs/atlas.ja-jp.salesforce1api.meta/salesforce1api/pardot_authentication.htm
var email = ''; //Pardotで登録しているメールアドレス
var password = ''; //Pardotで登録しているPW
var user_key = ''; //設定からAPIユーザーキーを取得 ※1
// API取得用のURL
var url = 'https://pi.pardot.com/api/login/version/4';
var parameters = {
method : 'post',
payload : 'email='+email+'&password='+password+'&user_key='+user_key+'&format=json',
};
var response = UrlFetchApp.fetch(url,parameters);
var json = JSON.parse(response.getContentText());
var api_key = json.api_key;
var prop = PropertiesService.getScriptProperties();
prop.setProperty('api_key', api_key);
}
※1箇所のユーザーキーは
下記画像の「設定」の中の「私のプロファイル」から取得可能
function getData() {
//上記で取得したAPIキーをプロパティストアから取得
var prop = PropertiesService.getScriptProperties();
var api_key = prop.getProperty('api_key');
var user_key = '';
//URLを変更することによって取得したい情報を変更
//http://developer.pardot.com/kb/api-version-4/campaigns/
//例えばキャンペーン情報がほしい場合は{}をcampaignを入れる
var url = "https://pi.pardot.com/api/{}/version/4/do/query";
var options = {
method : 'post',
payload : 'api_key=' + api_key + '&user_key=' + user_key + '&format=json'
};
var result = JSON.parse(UrlFetchApp.fetch(url, options).getContentText()).result;
var total_results = result.total_results; //返ってきたデータ数
var resultArray = result.{}; //{}は上記で設定したURLと同じcampaignならcampaignを入れる
var array = [];
for(var i=0; i<resultArray.length; i++){
array.push([]);
array[i].push(resultArray[i].name);
}
Logger.log(array);
var shtName = 'シート名';
var sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(shtName);
sht.getRange(10,1,array.length,array[0].length).setValues(array);
}