์ฟ ํก ํํธ๋์ค API V2 ์ฌ์ฉ๋ฒ๊ณผ ์๋ํ ์คํฌ๋ฆฝํธ ํ์ฉ๋ฒ
์ฟ ํก ํํธ๋์ค API V2 ์ถ์ฒ ์์คํ : ๋ธ๋ก๊ทธ ์ด์์๋ค์ด ์๋์ผ๋ก ์ต์ ํ๋ ์ํ์ ๋ ธ์ถํ ์ ์๋๋ก ๋์์ฃผ๋ API ๊ธฐ๋ฅ๊ณผ ํ์ฉ๋ฒ์ ์๊ฐํฉ๋๋ค
์ฟ ํก ํํธ๋์ค API๋ ์ฟ ํก ํํธ๋์ค ํ์๋ค์ด ์ฟ ํก ๋ด ์ํ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์กฐํํ๊ณ , ์ถ์ฒ ์ํ์ ์์ ์ ์น์ฌ์ดํธ๋ ๋ธ๋ก๊ทธ ๋ฑ์ ํจ์จ์ ์ผ๋ก ๋ ธ์ถํ ์ ์๋๋ก ์ง์ํ๋ ๊ฐ๋ฐ์์ฉ ์ธํฐํ์ด์ค์ ๋๋ค. ํนํ V2 ๋ฒ์ ์ ์ด์ ๋ฒ์ ์ธ V1๊ณผ ๋น๊ตํด ์ฌ๋ฌ ์ค์ํ ์ฐจ์ด์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฌ์ฉ์ ์ค์ฌ์ ์ถ์ฒ ์์คํ ์ผ๋ก, ๊ธฐ์กด V1์ด ์ฝํ ์ธ ๋ด ํน์ ํค์๋๋ ํต์ฌ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ด์์๊ฐ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ์ํ์ ๋ ธ์ถํ๋ค๋ฉด, ์ฟ ํก API V2๋ ์ฌ์ฉ์์ ํ๊ฒฝ๊ณผ ํ๋์ ๋ง์ถฐ ์ฟ ํก์์ ์ํ์ ์๋์ผ๋ก ์ถ์ฒํ๊ณ ๋ ธ์ถํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐฉ๋ฌธ์์๊ฒ ๋์ฑ ๋ง์ถคํ๋ ์ํ์ ๋ณด์ฌ์ค ์ ์๊ฒ ๋์์ต๋๋ค.
๋ํ,V2 ๋ฒ์ ์ ๋ณด์๊ณผ ๊ธฐ๋ฅ ๋ฉด์์๋ ํฌ๊ฒ ๊ฐํ๋์ด, ํนํ HMAC ์๋ช ๋ฐฉ์์ ํ์ฉํ ์์ ์ ์ธ ์ธ์ฆ ์ฒด๊ณ๋ฅผ ๊ฐ์ถ๊ณ ์์ต๋๋ค. ์ด์ฒ๋ผ ์ฟ ํก API ํ์ฉ๋ฐฉ๋ฒ์ ์์ด ๋ณด์์ ํ์ ์์๋ก, ๋ชจ๋ API ํธ์ถ ์ HMAC ์๋ช ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. ํน์ ์ํ์ ์ต๋ํ ๋ ธ์ถ์ํค๊ณ ์ ํ๋ค๋ฉด, ๊ธฐ์กด์ ์์ฑํ ์ฟ ํก ์ํ ์๋ ๋ ธ์ถ ํํฐ๋ง ๊ด๋ จ ๊ธ๋ ์ฐธ๊ณ ํ์๋ฉด ๋์์ด ๋ฉ๋๋ค.
์ฟ ํก API ํค ์์ฑ๋ถํฐ ํธ์ถ๊น์ง, ํํธ๋์ค API V2 ์์ ์ ๋ณต
๋ณธ ๊ธ์์๋ ์ฟ ํก ์์ฒด ์ถ์ฒ ์ํ ๋ ธ์ถ ๋ฐฉ์๊ณผ ์ฟ ํก API V2์ ์ฃผ์ ํน์ง์ ์์ธํ ๋ค๋ฃจ๋ฉฐ, ์ฟ ํก API ํ์ฉ๋ฐฉ๋ฒ๊ณผ ์ฌ์ฉ๋ฒ์ ๋ฌผ๋ก , ์ฝ๊ฒ ๋ฐ๋ผ ํ ์ ์๋ ์๋ํ ์ฝ๋๋ ํจ๊ป ์ ๊ณตํฉ๋๋ค.
1. ์ฟ ํก ํํธ๋์ค API๋?
์ฟ ํก ํํธ๋์ค API๋ ์ฟ ํก ํํธ๋์ค ํ์๋ค์ด ์ฟ ํก ๋ด ์ํ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์กฐํํ๊ฑฐ๋, ์ถ์ฒ ์ํ์ ๊ฐ์ ธ์ ์์ ์ ์น์ฌ์ดํธ๋ ๋ธ๋ก๊ทธ ๋ฑ์ ํจ์จ์ ์ผ๋ก ๋ ธ์ถํ ์ ์๋๋ก ์ง์ํ๋ ๊ฐ๋ฐ์์ฉ ์ธํฐํ์ด์ค์ ๋๋ค. V2 ๋ฒ์ ์ ์ด์ ๋ฒ์ ๋ณด๋ค ๋ณด์๊ณผ ๊ธฐ๋ฅ์ด ๊ฐํ๋์ด, HMAC ์๋ช ๋ฐฉ์์ผ๋ก ์์ ์ ์ธ ์ธ์ฆ์ด ๊ฐ๋ฅํฉ๋๋ค.

2. ์ฟ ํก API ์์ํ๊ธฐ: Access Key์ Secret Key ๋ฐ๊ธ
์ฟ ํก ํํธ๋์ค API๋ ์ต์ข ์น์ธ๋ ํ์์๊ฒ๋ง ์ ๊ณต๋ฉ๋๋ค. ์์ง ์ต์ข ์น์ธ์ด ๋์ง ์์ ๊ฒฝ์ฐ, ์ ํด ID(AF ID)์ ๊ด๊ณ ๊ฒ์ฌ ์์น ๋ฐ ๊ด๊ณ ํํ๋ฅผ ์ฟ ํก ํํธ๋์ค ๋ฉ์ผ๋ก ๋ฌธ์ํ์ฌ ๋ณ๋ ๊ฒํ ๋ฅผ ๋ฐ์ผ์ค ์ ์์ต๋๋ค.
API V2 ํค ๋ฐ๊ธ ๋ฐฉ๋ฒ
- ์ฟ ํก ํํธ๋์ค ์ฌ์ดํธ ์๋จ ๋ฉ๋ด๋ฐ์์ Tools ํํธ๋์ค API ๋ก ์ด๋ํ์ธ์.
- ์์ฑ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๋ฐ๋ก Access Key์ Secret Key๋ฅผ ๋ฐ๊ธ๋ฐ์ต๋๋ค.
- ๋ณด์์ ํค๋ ์ ๋ ๋ ธ์ถ๋์ง ์๋๋ก ๊ด๋ฆฌํด์ผ ํฉ๋๋ค.
3.์ฟ ํก API ํธ์ถ ์ HMAC ์๋ช ์์ฑ๋ฒ
ํํธ๋์ค API๋ HMAC (Hash Message Authentication Code) ์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ API ํธ์ถ ์ ๋ณด์์ ๊ฐํํ๋ ์ํธํ ํ๋กํ ์ฝ๋ก, ๋ชจ๋ ์์ฒญ์ HMAC ์๋ช ์ ํฌํจํด์ผ ํฉ๋๋ค.
// HMAC ์๋ช
์์ฑ Java ์์
public static String generate(String method, String uri, String secretKey, String accessKey) {
// ์๋ช
์์ฑ ๋ก์ง...
return String.format("CEA algorithm=HmacSHA256, access-key=%s, signed-date=%s,
signature=%s", accessKey, datetime, signature);
}
์๋ช ์์ฑ ํ Authorization ํค๋์ ์๋ช ์ ๋ฃ์ด HTTP ์์ฒญ์ ๋ณด๋ด๋ฉด ์ธ์ฆ์ด ์๋ฃ๋ฉ๋๋ค.
4. ์ค์ ์ฟ ํก ํํธ๋์ค API ํธ์ถ ์์
์๋๋ Java๋ฅผ ์ด์ฉํด ์ฟ ํก ํํธ๋์ค API์ ์์ฒญ์ ๋ณด๋ด๋ ๊ธฐ๋ณธ ์์์ ๋๋ค.
// OpenApiTestApplication.java ๋ฐ์ท
String authorization = HmacGenerator.generate(REQUEST_METHOD, URL, SECRET_KEY, ACCESS_KEY);
HttpRequest request = RequestBuilder.post(URL)
.setEntity(new StringEntity(REQUEST_JSON, "UTF-8"))
.addHeader("Authorization", authorization)
.build();
HttpResponse response = HttpClientBuilder.create().build().execute(host, request);
System.out.println(EntityUtils.toString(response.getEntity()));
์ฑ๊ณต ์ ์๋์ ๊ฐ์ JSON ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ต๋๋ค.
{
"rCode": "0",
"rMessage": "",
"data": [
{
"originalUrl": "https://www.coupang.com/np/search?component=&q=good&channel=user",
"shortenUrl": "https://coupa.ng/bgQjht"
},
...
]
}
5. ํํธ๋์ค API V2 ์ฌ์ฉ ์ ์ฃผ์์ฌํญ๊ณผ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์
- Unknown error occurred ๋ฑ ์ธ์ฆ ์คํจ ์๋ฌ ๋ฐ์ ์, ํค ๊ฐ๊ณผ ์๋ช ์์ฑ ๊ณผ์ , API ์๋ํฌ์ธํธ ์ฃผ์๋ฅผ ๋ค์ ํ๋ฒ ํ์ธํ์ธ์.
- Access Key์ Secret Key๋ ๊ฐ์ธ์ ๋ณด์ ๊ฐ์ผ๋ ์ฒ ์ ํ ๋ณด๊ดํด์ผ ํฉ๋๋ค.
- API ํธ์ถ์ HTTPS ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ผ ํ๋ฉฐ, CORS ์ ์ฑ ์ ๋ง๊ฒ ์ค์ ๋์ด์ผ ํฉ๋๋ค.
6. ์ฟ ํก API V2 ํค ์คํฌ๋ฆฝํธ ์์ฑ๊ธฐ ์ฌ์ฉ๋ฒ
API ํค๋ฅผ ์ง์ ์ ๋ ฅํ๊ณ ์ฝ๊ฒ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๋ ๊ฐ๋จํ ์น UI๋ฅผ ์ ๊ณตํด๋๋ฆฝ๋๋ค.
UI ๊ตฌ์ฑ
- ์ฟ ํก Access Key ์ ๋ ฅ๋
- ์ฟ ํก Secret Key ์ ๋ ฅ๋
- ์คํฌ๋ฆฝํธ ์์ฑ ๋ฒํผ
- ๋ณต์ฌ ๋ฐ ์ด๊ธฐํ ๋ฒํผ
- ์์ฑ๋ API ํค ์ฝ๋ ์ถ๋ ฅ๋ (์ฝ๊ธฐ ์ ์ฉ)
์ฃผ์ ๊ธฐ๋ฅ
- ์ ๋ ฅํ ํค๋ฅผ ๋ฐํ์ผ๋ก ๊ตฌ๊ธ ์ฑ์ค ์คํฌ๋ฆฝํธ์ฉ ์ธ์ฆ ์ฝ๋ ์๋ ์์ฑ
- ๋ณต์ฌ ๋ฒํผ์ผ๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ์์ฝ๊ฒ ๋ณต์ฌ
- ์ด๊ธฐํ ๋ฒํผ์ผ๋ก ์ ๋ ฅ๊ฐ๊ณผ ์ถ๋ ฅ์ ํ๋ฒ์ ์ด๊ธฐํ
์ฟ ํก API ์ฝ๋ ์๋์์ฑ๊ธฐ ์ฌ์ฉ ๋ฐฉ๋ฒ
- ๋ณธ์ธ์ ์ฟ ํก Access Key์ Secret Key๋ฅผ ์ ๋ ฅํ์ธ์.
- ์ฝ๋ ์์ฑ ๋ฒํผ์ ๋๋ฅด๋ฉด ํ๋จ ์ถ๋ ฅ๋์ ์์ฑ๋ ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ๋ํ๋ฉ๋๋ค.
- ๋ณต์ฌ ๋ฒํผ์ผ๋ก ์ฝ๋๋ฅผ ๋ณต์ฌํด ๊ตฌ๊ธ ์ฑ์ค ์คํฌ๋ฆฝํธ์ ๋ถ์ฌ๋ฃ๊ธฐ ํ์ธ์.
- ํ์ ์ ์ด๊ธฐํ ๋ฒํผ์ ๋๋ฌ ๋ค์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
์ฟ ํก API APP V2 ์คํฌ๋ฆฝํธ ์์ฑ๊ธฐ
์๋ ์ฝ๋๋ https://script.google.com/ ์ฌ์ดํธ์ ์ ์ฉํ์ธ์. ์ ์ฉ ๋ฐฉ๋ฒ์ ์์ธํ ๋ณด์๋ ค๋ฉด; ์ด ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
์๋์ ์ฟ ํก API ํค๋ฅผ ์ ๋ ฅํ๋ฉด, ๊ตฌ๊ธ ์ฑ์ค ์คํฌ๋ฆฝํธ์ฉ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์์ฑ๋ ์ฝ๋๋ฅผ ๊ตฌ๊ธ ์ฑ์ค ์คํฌ๋ฆฝํธ์ ๋ถ์ฌ๋ฃ์ด ์ฌ์ฉํ์ธ์.
์ฟ ํก API V2 ์คํฌ๋ฆฝํธ ์์ฑ๊ธฐ
์๋์ ๊ตฌ๊ธ ์ฑ์ค ์ฃผ์, ๊ด๊ณ ๋ ธ์ถ ์์น, ์ฟ ํก ์ ํด ์์ด๋, ๊ทธ๋ฆฌ๊ณ ์ํ ๋ ธ์ถ ๊ฐ์๋ฅผ ์ ๋ ฅํ๋ฉด ๋ธ๋ก๊ทธ ์ฌ์ดํธ์ ์ ์ฉํ ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์์ฑ๋ ์ฝ๋๋ HTML์ body ์๋จ์ ์ฝ์ ํ์๋ฉด ๋ฉ๋๋ค.
์: ๊ด๊ณ ๋ฅผ ๋
ธ์ถํ๊ณ ์ ํ๋ ์์น์ div id="coupang-ad-container"/div๋ฅผ ์ง์ ํฉ๋๋ค.
HTML์ ์ ์ฉํ๋ CSS ์์
.coupang-ad-list {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
}
.coupang-ad-item {
margin: 10px;
border: 1px solid #eee;
padding: 10px;
width: 180px;
text-align: center;
background: white;
color: black;
box-sizing: border-box;
scroll-snap-align: start;
}
.coupang-ad-img {
width: 150px;
height: 150px;
object-fit: contain;
}
.coupang-ad-name {
white-space: normal;
margin: 10px 0 8px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
color: #333;
line-height: 1.4;
font-size: 14px;
min-height: 3.1em;
}
.coupang-ad-price {
font-weight: bold;
color: #0073e6;
}
.coupang-ad-footer {
font-size: 12px;
color: var(--pcs-border-tag-primary);
margin-top: 15px;
text-align: center;
}
/* ๋ฐ์คํฌํ (768px ์ด์) */
@media (min-width: 768px) {
.coupang-ad-list {
flex-wrap: nowrap;
justify-content: space-between;
}
.coupang-ad-item {
flex: 0 0 calc((100% - 80px) / 5);
/* 5๊ฐ ์ผ๋ ฌ ๋ฐฐ์น, ๊ฐ๊ฒฉ ๊ณ ๋ ค */
margin: 0;
}
}
/* ๋ชจ๋ฐ์ผ (767px ์ดํ) */
@media (max-width: 767px) {
.coupang-ad-list {
flex-wrap: nowrap !important;
overflow-x: auto !important;
scroll-snap-type: x mandatory !important;
-webkit-overflow-scrolling: touch !important;
padding: 10px 5px !important;
margin: 10px 0 !important;
gap: 12px !important;
}
.coupang-ad-list::-webkit-scrollbar {
display: none !important;
}
.coupang-ad-item {
flex: 0 0 auto !important;
width: 220px !important;
margin: 0 !important;
border: none !important;
box-shadow: 0 0 5px rgba(0,0,0,0.1) !important;
border-radius: 6px !important;
scroll-snap-align: start !important;
background: white !important;
}
}์ฟ ํก API V2 ์ง์ ์ ์ ์ ๊ผญ ์์์ผ ํ ์ฃผ์ ์ฌํญ
์ฟ ํก API ์๋ต ๊ตฌ์กฐ์ ๋ง๊ฒ ์ฒ๋ฆฌํ๊ธฐ
์ฟ ํก RECO API๋ ์ค์ ์ํ ์ ๋ณด๊ฐ data.result ๋ฐฐ์ด ์์ ๋ค์ด ์์ต๋๋ค.
์ด๊ธฐ์๋ data๊ฐ ๋ฐ๋ก ๋ฐฐ์ด์ธ ์ค ์๊ณ ์ฒ๋ฆฌํ๋๋ฐ, ์ค์ ๋ก๋ data.result๋ก ์ ๊ทผํด์ผ ์ ํํ ์ํ ๋ฆฌ์คํธ๋ฅผ ์ป์ ์ ์์์ต๋๋ค.
ํด๋ผ์ด์ธํธ ํ๋ผ๋ฏธํฐ ์ ๋๋ก ๋ฐ๊ธฐ
ํด๋ผ์ด์ธํธ์์ ์ ๋ฌํ๋ deviceId, pageUrl, domain, ua, puid ๋ฑ ํ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก ๋ฐ๊ณ , ์ด ๊ฐ์ API ์์ฒญ์ ๊ทธ๋๋ก ๋ฐ์ํ์ฌ ์ฟ ํก API๋ฅผ ํธ์ถํ๋๋ก ๊ตฌํํ์ต๋๋ค.
HMAC ์๊ทธ๋์ฒ(์ธ์ฆ ํค๋) ์์ฑ ์ฝ๋ ์์ฑ ๋ฐ ์ ์ฉ
์ฟ ํก API๋ ๋ชจ๋ ์์ฒญ๋ง๋ค ์ธ์ฆ์ฉ **HMAC ์๊ทธ๋์ฒ**๋ฅผ ์์ฑํด Authorization ํค๋์ ๋ฃ์ด์ผ ํฉ๋๋ค. ์ด ๋ถ๋ถ์ ์ ํํ๊ฒ ๊ตฌํํ์ฌ ์ธ์ฆ ์ค๋ฅ ์์ด API ์์ฒญ์ด ์ ์ ์ฒ๋ฆฌ๋๋๋ก ํ์ต๋๋ค.
์๋ต ๋ฐ์ดํฐ์์ ํ์ํ ์ ๋ณด๋ง ์ถ์ถํด ํด๋ผ์ด์ธํธ์ ์ ๋ฌ
Google Apps Script๊ฐ ์ฟ ํก API ์ ์ฒด ์๋ต์ ๋ฐ๋๋ผ๋, ํด๋ผ์ด์ธํธ(ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ ๋ฑ)์๋ ์ํ ๋ฆฌ์คํธ๋ง data.result ํํ๋ก ๊น๋ํ๊ฒ ์ ๋ฌํด ๋ฐ๋ก ํ์ฉํ ์ ์๊ฒ ํ์ต๋๋ค.
์ค๋ฅ ๋ฐ์ ์ ์์ธํ ์๋ฌ ๋ฉ์์ง ๋ฐํ
๋ง์ฝ API ํธ์ถ์ด๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด, ์ด๋์ ์ค๋ฅ๊ฐ ๋ฌ๋์ง ์ ์ ์๋๋ก ์์ธํ ์๋ฌ ๋ฉ์์ง๋ฅผ ํฌํจํด ์๋ตํ๋๋ก ํ์ฌ ๋๋ฒ๊น ์ด ์ฝ๋๋ก ํ์ต๋๋ค.
์ค๋ฅ ๋ฐ์ ์ ์์ธ ๋ฉ์์ง ๋ฐํํ์ฌ ๋๋ฒ๊น ์ฝ๊ฒ
- ๋ง์ฝ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ด๋ค ๋ถ๋ถ์์ ์๋ฌ๊ฐ ๋ฌ๋์ง ๋ฉ์์ง๋ฅผ ํฌํจํด์ ์๋ตํ๋๋ก ํ์ด์.
์ฟ ํก ํํธ๋์ค API V2๋ ํํธ๋ ์ฌ๋ฌ๋ถ์ด ์ฟ ํก ์ํ์ ๋ ์ฝ๊ฒ ๋ ธ์ถํ๊ณ , ๋ง์ถคํ ์ํ ์ถ์ฒ์ ๊ตฌํํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ด๋ฒ ๊ธ์์ ์๊ฐํ API ํค ์์ฑ๊ธฐ์ HMAC ์๋ช ๋ฐฉ๋ฒ์ ์ฐธ๊ณ ํด ํธ๋ฆฌํ๊ฒ API๋ฅผ ํ์ฉํ์๊ธธ ๋ฐ๋๋๋ค. ๊ถ๊ธํ ์ ์ด๋ ์ค๋ฅ ๋ฐ์ ์, ์ฟ ํก ํํธ๋์ค ๊ณ ๊ฐ์ผํฐ ๋ฐ ๊ณต์ ๋ฌธ์์์ ์ต์ ์ ๋ณด๋ฅผ ํ์ธํ์ธ์.
์ฟ ํก ํํธ๋์ค API V2๋ ๋ฌด์์ด๋ฉฐ, V1๊ณผ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์?
์ฟ ํก ํํธ๋์ค API V2๋ ์ฟ ํก ์ํ ์ ๋ณด๋ฅผ ์๋ ์กฐํํ๊ณ ์ถ์ฒ ์ํ์ ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ง๊ฒ ์๋ ๋ ธ์ถํ๋ ๊ฐ๋ฐ์์ฉ API์ ๋๋ค. ๊ธฐ์กด V1์ ์ด์์ ์ค์ฌ์ผ๋ก ์ฝํ ์ธ ํค์๋ ๊ธฐ๋ฐ ์ํ ๋ ธ์ถ์ด์์ง๋ง, V2๋ ์ฌ์ฉ์ ํ๋๊ณผ ํ๊ฒฝ์ ๋ง์ถ ๋ง์ถคํ ์ถ์ฒ ์์คํ ์ผ๋ก ๋ฐ๋์์ต๋๋ค.
์ฟ ํก API V2๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
์ต์ข ์น์ธ๋ ์ฟ ํก ํํธ๋์ค ํ์๋ง Access Key์ Secret Key๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์์ต๋๋ค. ์ฟ ํก ํํธ๋์ค ์ฌ์ดํธ์ Tools > ํํธ๋์ค API ๋ฉ๋ด์์ ํค๋ฅผ ์์ฑํ๋ฉฐ, ๋ณด์์ ์ํด ํค๋ ์ ๋ ๋ ธ์ถํ์ง ์์์ผ ํฉ๋๋ค. API ํธ์ถ ์์๋ HMAC ์๋ช ์ ๋ง๋ค์ด Authorization ํค๋์ ํฌํจ์์ผ์ผ ์ธ์ฆ์ด ์๋ฃ๋ฉ๋๋ค.
์ฟ ํก API V2๋ฅผ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ธ๊ฐ์?
API ์๋ต ๊ตฌ์กฐ(data.result)๋ฅผ ์ ํํ ์ดํดํ๊ณ , ํ์ ํ๋ผ๋ฏธํฐ(deviceId, pageUrl, domain, ua, puid)๋ฅผ ์ฟผ๋ฆฌ๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค. HMAC ์๋ช ์์ฑ ์ฝ๋๋ฅผ ์ ํํ ๊ตฌํํด ์ธ์ฆ ์ค๋ฅ ์์ด ํธ์ถํ๋ฉฐ, ์ค๋ฅ ๋ฐ์ ์ ์์ธ ๋ฉ์์ง๋ฅผ ๋ฐ์ ์ฝ๊ฒ ๋๋ฒ๊น ํ ์ ์์ต๋๋ค. ๋ํ, ํค๋ฅผ ์ฝ๊ฒ ์์ฑํ๋ ์คํฌ๋ฆฝํธ ์์ฑ๊ธฐ๋ฅผ ํ์ฉํ๋ฉด ํธ๋ฆฌํฉ๋๋ค.