LANG SELRCT

Apps Script Reference  (Create: Create new Spreadsheet | Create new Apps Script

Sunday, December 19, 2021

SalesforceのAPIをLambdaからたたいてみる(Developers Edition)


Lambdaを利用してSalesforceの情報をAPIで取得しようとしたときに、オープンなAPI GatewayのURLにアクセスして実行したときの備忘録です。

IP制限やアクセストークンの保存場所・更新などは考えず、リクエストの結果を取得するためだけに書いたテスト用のコードです。
本番のSalesforceで実行する場合は、それらを考慮する必要があると思います。

今回はDevelopers Editionで試しています。



index.html
var https = require('https');

var case_id = "CASE_ID";
var salesforce_api_token = "ACCESS_TOKEN";
var host = "HOST";//instance_urlのhttps://の後ろ→hoge-dev-ed.my.salesforce.com
var path = "/services/data/v47.0/sobjects/Case/" + case_id;

exports.handler = async function(event) {
  console.log(event);

 var results = await getData(); //getData()の処理が終わってから次の処理を実行する
 var json = returnJson(results);

 return json;
}

//Promise
function getData() {
 return new Promise(resolveFunc);
}

//Promise resolved
function resolveFunc(arg) {
 https.get(getOptions(), function(res) {
    var body = '';
    res.on('data', function(chunk) {
     body += chunk;
    });
    res.on('end', function(chunk) {
     arg(body);
    });
    res.on('error', function(e) {
     arg(e.message);
    });
 });
}

function getOptions() {
 var options = {
    "method": 'GET',
    "host": host,
    "path": path,
    "uri": host + path,
    "headers": {
     "Content-type": "application/json",
     "Authorization": " Bearer " + salesforce_api_token// Lambda側に設定して読む場合はprocess.env. salesforce_api_token
    }
 };
 return options;
}

//JSONを返す
function returnJson(results) {
 const response = {
    body: JSON.parse(results),
 };
 return response;
}




Latest post

Extracting data from Google Sheets with regular expressions

Introduction Regular expressions are a powerful tool that can be used to extract data from text.  In Google Sheets, regular expressions ca...