카카오 T 비즈니스 API 를 이용하기 위해서는 API 인증 토큰이 필요합니다.
준비
biz.cs@kakaomobility.com 으로 토큰 요청 이메일을 보내주세요.
카카오 T 비즈니스 운영자가 전달해 드립니다.
전달받으신 토큰으로 API 호출에 사용할 API 인증 토큰을 만들 수 있습니다.
생성
API 인증 토큰은 해싱(HmacSHA1)을 통해 생성합니다.
카카오 T 비즈니스 운영자로부터 전달받은 토큰은 해싱에 필요한 Secret 으로 사용됩니다.
해싱 될 Message 는 다음처럼 구성됩니다.
Message 포맷
“{난수}\n{호출할 API URL}\n{호출할 API HttpMethod}\n{기업 ID}\n{API 인증토큰을 생성한 유닉스시간(초)}\n{난수}”
Message 예시
”96292\nhttps://mob-b2b-dev.kakao.com/external/v2/orders\nGET\n00000000\n1698650510\n96292”
예제
Python
import time
import random
import hmac
import hashlib
import base64
CORPORATION_ID = "" # T 비즈 ID
SECRET = "" # 이메일로 전달받은 토큰
nonce = random.randrange(100000)
url = "https://mob-b2b-dev.kakao.com/external/v2/orders"
http_method = "GET"
timestamp = int(time.time())
message = f"{nonce}\n{url}\n{http_method}\n{CORPORATION_ID}\n{timestamp}\n{nonce}"
api_auth_token = base64.b64encode(
hmac.new(SECRET.encode("utf-8"), message.encode("utf-8"), hashlib.sha1).digest()
).decode("utf-8")
print("Authorization: Token " + api_auth_token)
print("x-mob-b2b-corp-id:", CORPORATION_ID)
print("x-mob-b2b-nonce:", nonce)
print("x-mob-b2b-timestamp:", timestamp)
Python
복사
Java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.util.Base64;
import java.util.Random;
public class ApiAuthTokenMaker {
public static void main(String[] args) throws Exception {
String corporationId = ""; // T 비즈 ID
String secret = ""; // 이메일로 전달받은 토큰
int nonce = new Random().nextInt(100000);
String url = "https://mob-b2b-dev.kakao.com/external/v2/orders";
String httpMethod = "GET";
long timestamp = Instant.now().getEpochSecond();
String message = nonce + "\n" + url + "\n" + httpMethod + "\n" + corporationId + "\n" + timestamp + "\n" + nonce;
Mac mac = Mac.getInstance("HmacSHA1");
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA1"));
String apiAuthToken = Base64.getEncoder().encodeToString(mac.doFinal(message.getBytes(StandardCharsets.UTF_8)));
System.out.println("Authorization: Token " + apiAuthToken);
System.out.println("x-mob-b2b-corp-id: " + corporationId);
System.out.println("x-mob-b2b-nonce: " + nonce);
System.out.println("x-mob-b2b-timestamp: " + timestamp);
}
}
Java
복사
C#
using System;
using System.Security.Cryptography;
using System.Text;
class ApiAuthTokenMaker
{
static void Main()
{
string corporationId = ""; // T 비즈 ID
string secret = ""; // 이메일로 전달받은 토큰
int nonce = new Random().Next(100000);
string url = "https://mob-b2b-dev.kakao.com/external/v2/orders";
string httpMethod = "GET";
long timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
string message = $"{nonce}\n{url}\n{httpMethod}\n{corporationId}\n{timestamp}\n{nonce}";
using var hmac = new HMACSHA1(Encoding.UTF8.GetBytes(secret));
string apiAuthToken = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(message)));
Console.WriteLine("Authorization: Token " + apiAuthToken);
Console.WriteLine("x-mob-b2b-corp-id: " + corporationId);
Console.WriteLine("x-mob-b2b-nonce: " + nonce);
Console.WriteLine("x-mob-b2b-timestamp: " + timestamp);
}
}
C#
복사



본 문서는 버전 v1 기준입니다. 신규 연동 시
