Search

API 인증 토큰 v1

⚠️ 본 문서는 버전 v1 기준입니다. 신규 연동 시 [카카오 T 비즈니스 API v2] 사용을 권장드립니다.
카카오 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{난수}
⚠️
기업 ID 카카오 T 비즈니스 관리시스템 > 설정 > 계정정보 > T 비즈 ID 를 참고하세요. 호출할 API URL 는 쿼리스트링을 포함하지 않습니다.
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#
복사