Interface 연동시 별도 Custom Object 를 만들지 않고 , metaData에서 Endpoint 등 관리를 하게됐다..
문제는 토큰 발급 호출시에, 토큰을 보관해야하는데 담을곳이 없다는것..
토큰때문에 object 만들기는 애매하고, metaData 에 필드를 추가해서 담아놓고 조회하게끔 구현
메타데이터를 업데이트 하는 방법은 아래와 같다
200 으로 통신이 성공되고 resp 에서 token 정보를 가져와서 metadata 를 찾아서 담아준다.
if(responseCode == 200){
String responseBody = response.getBody();
ResponseCls res = (ResponseCls) JSON.deserialize(responseBody, ResponseCls.class);
System.debug('Access Token ' + res.access_token);
DateTime expiresDate = System.now().addSeconds(Integer.valueOf(res.expires_Date));
System.debug(' (date/time) 변환 : ' + res. expires_Date );
if(res.access_token != null){
Metadata.CustomMetadata cmdt = new Metadata.CustomMetadata();
cmdt.fullName = 'API_Test__mdt. API_TOKEN_MASTER '; // MasterLabel정보
cmdt.label = 'API_TOKEN_MASTER';
Metadata.CustomMetadataValue tokenField = new Metadata.CustomMetadataValue();
tokenField.field = 'Token__c'; // mdt 필드추가
tokenField.value = res.access_token;
Metadata.CustomMetadataValue expiresField = new Metadata.CustomMetadataValue();
expiresField.field = 'ExpiresTokenAt__c'; // expiredDate/Time
expiresField.value = expiresDate ;
cmdt.values = new List<Metadata.CustomMetadataValue>{ tokenField , expiresField };
Metadata.DeployContainer container = new Metadata.DeployContainer();
container.addMetadata(cmdt);
CMDTDeployCallback callback = new CMDTDeployCallback();
Id jobId = Metadata.Operations.enqueueDeployment(container, callback);
System.debug('배포 Job ID: ' + jobId);
}
}
여기서 해당 내용에 대한 callback 을 받고싶다면 이렇게 하면된다
public class CMDTDeployCallback implements Metadata.DeployCallback {
public void handleResult(Metadata.DeployResult result,
Metadata.DeployCallbackContext context) {
if (result.status == Metadata.DeployStatus.Succeeded) {
System.debug('Deployment succeeded: ');
} else {
System.debug('Deployment fail : ');
}
}
}
'세일즈포스 관련지식' 카테고리의 다른 글
salesforce user 비밀번호 강제변경 APEX Change user password (0) | 2024.12.18 |
---|---|
VisualStudio APEX Debugging (0) | 2024.05.29 |
언어 및 표준시간대 - 권한부족현상 해결법 (0) | 2023.03.17 |
VS Code - Salesforce org 연결 (Authorize an Org) (1) | 2023.01.29 |
최종수정자, 마지막수정자 , 생성일자 수정 설정 (0) | 2023.01.29 |