Prerequisite
- 스마일샤크에서 아래 내용을 전달 받아야 합니다.
- CloudCheckr Access Key 발급이 필요합니다.
- CloudCheckr Client-ID 를 전달 받아야 합니다.
- CloudCheckr FIlter Name 을 전달 받아야 합니다.
- CloudCheckr Account Name 을 전달 받아야 합니다. (Checker Console 에서도 확인 가능)
Process
- Access Token 발급
- 빌링 API 사용
- 전달 받은 Access Key 를 사용하여 Access Token 을 생성 합니다 (생성후 유효시간 1시간)
- 생성된 Token을 사용하여 CloudCheckr 의 API를 호출 합니다.
- 아래 예제에 상세 내용이 포함되어 있습니다. (Curl 및 파이썬 예제)
Curl 예제 (Access Token 만 발급시)
curl --location 'https://auth-au.cloudcheckr.com/auth/connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=[전달 받은 Client-ID]' \
--data-urlencode 'client_secret=[전달 받은 Access Key]' \
--data-urlencode 'scope=api'
Python 예제 (Access Token 발급 + Billing API 호출)
import requests
import pandas as pd
import json
import pprint
## 스마일샤크로부터 전달 받은 내용
CHECKR_CLIENT_ID = '[전달 받은 Client-ID]'
CHECKR_ACCESS_KEY = '[전달 받은 Access Key]'
CHECKR_ACCOUNT = '[전달 받은 Checkr Account Name]'
SAVED_FILTER = '[전달 받은 Checkr Filter Name]'
## 빌링 API 일자 지정
START_DATE = '[시작 일자]' # 일자 포멧: YYYY-MM-DD
END_DATE = '[마지막 일자]' # 일자 포멧: YYYY-MM-DD
## URL (토근 발급 & 빌링 API)
AUTH_URL = 'https://auth-au.cloudcheckr.com/auth/connect/token'
API_URL = "https://au.cloudcheckr.com/api/billing.json/get_detailed_billing_with_grouping_v2"
#################################
## Access Token 발급 (1시간 유효) ##
#################################
payload = {
"grant_type": "client_credentials",
"client_id": CHECKR_CLIENT_ID,
"client_secret": CHECKR_ACCESS_KEY,
"scope": "api"
}
try:
response_auth = requests.post(AUTH_URL, data=payload)
access_token = json.loads(response_auth.text)['access_token']
except Exception as e:
print(e)
#################
## 빌링 API 사용 ##
#################
headers = {
'cache-control': 'no-cache',
'content-type': 'application/json'
}
params = {
'access_key': f'Bearer {access_token}', ## 생성된 token
'start': START_DATE,
'end': END_DATE,
'use_account': CHECKR_ACCOUNT,
'saved_filter_name': SAVED_FILTER,
'with_costs_by_time': 'true'
}
try:
res = requests.get(API_URL, headers=headers, params=params)
except Exception as e:
print(e)
## 출력
pprint.pprint(json.loads(res.content))
Reference
- "Step 5" 이후 부분만 확인하시면 됩니다.
https://success.cloudcheckr.com/article/8qycy5899x-use-cloud-checkr-cmx-access-tokens-to-manage-existing-api-access-keys - https://success.cloudcheckr.com/article/7sskuffbg6-api-reference-guide
※스마일샤크가 제공하는 모든 콘텐츠는 관련 법의 보호를 받습니다. 스마일샤크 콘텐츠를 사전허가 없이 무단으로 복사·배포·판매·전시·개작할 경우 민·형사상 책임이 따를 수 있습니다. 콘텐츠 사용과 관련해 궁금한 점이 있으면 전화(☎: 070-4369-2028) 또는 이메일(contact@smileshark.kr)로 문의하기 바랍니다.
댓글
댓글 0개
댓글을 남기려면 로그인하세요.