페이지 이동경로
  • 문서>
  • 유용한 참고 정보>
  • FAQ

유용한 참고 정보

FAQ

카카오 플랫폼 처음 사용자를 위해 자주 묻는 질문을 안내합니다.

이 문서는 지속적으로 업데이트됩니다. 찾기(Control+F 키)로 필요한 내용을 검색할 수 있습니다. 이 밖에 궁금한 점은 개발자 포럼 데브톡에서 질문할 수 있습니다.

플랫폼

Q. 스크랩한 미리보기 이미지가 바뀌지 않아요.

카카오링크나 카카오톡으로 메시지를 보낼 때, 카카오스토리로 웹 사이트를 스크랩해 스토리 글쓰기를 할 때, 미리보기 이미지나 문구 변경사항이 반영되지 않는 경우가 있습니다. 이는 캐시(cache) 데이터 때문에 생기는 현상으로 [도구] > [초기화 도구] > [OG(Open Graph) 캐시] 메뉴에서 카카오 플랫폼에 저장된 웹 페이지나 파일의 URL을 입력하여 캐시 데이터를 삭제할 수 있습니다.

만약 캐시 데이터를 삭제한 후에도 기존 이미지나 문구가 나타난다면, 다음 내용을 참고합니다.

  • 웹 페이지를 스크랩한 경우, og 태그 값이 올바르게 입력되어 있는지 확인하기
  • 메시지의 경우, 카카오톡 대화방을 나갔다가 다시 만들어 테스트 메시지 보내기

보다 자세한 내용은 관련 공지사항을 확인합니다. 스크랩 메시지에 사용하는 og 태그 정보는 메시지 템플릿 가이드를 참고합니다.

카카오 플랫폼에서는 OG 프로토콜에 따라 웹 페이지의 정보를 가져와 사용할 뿐, 웹 페이지 데이터를 변경하지 않습니다. 때문에 캐시 초기화 도구를 통한 삭제 외 개별 조치가 어렵습니다. 만약 캐시 초기화 도구가 동작하지 않거나, 다른 이상 현상이 발견될 경우에는 데브톡을 통해 문의합니다.

Q. 앱 등록 시 이름, 아이콘, 회사를 반드시 입력해야 하나요?

네, 앱의 기본 정보에 해당하는 앱 이름, 앱 아이콘, 회사는 필수 입력 항목이며 실제 서비스 정보와 동일해야 합니다. 기본 정보가 올바르지 않은 경우, 사용자가 위변조된 앱으로 오해할 수 있습니다. 기본 정보의 용도를 참고합니다.

Q. 애플리케이션 소유자를 변경하고 싶어요.

애플리케이션(앱) 소유자(Owner) 변경은 서비스에 치명적인 영향을 미칠 수 있습니다. 때문에 다음 절차를 거쳐 꼭 필요한 경우에 한해 앱 소유자 변경이 가능합니다.

  • 데브톡에서 통해 앱 소유자 변경 공지사항을 확인하고 문의 게시물을 등록합니다.
  • 현재 소유자 계정이 무엇인지 파악 후, 해당 계정에 접근할 수 있는 상태인지 확인합니다.
  • 현재 소유자 계정이 담당자 퇴사 등 이유로 접근할 수 없는 상태라면, 앱 및 서비스의 실제 소유자임을 확인하기 위한 자료를 요청합니다. 확인 자료는 사업자등록증, 현재 서비스에 적용된 앱 키 값, 서비스 도메인 등이며 데브톡 메시지를 통해 요청을 주고 받습니다.
  • 서류를 통해 실제 소유자임을 확인한 뒤, 소유자 변경 처리가 이뤄집니다.

Q. 앱 키 재발급 시 복구할 수 있나요?

[내 애플리케이션] > [앱 키]에서 앱 키 값을 조회하거나 재발급할 수 있습니다. 애플리케이션(앱)마다 고유하게 부여되는 식별 정보인 앱 키는 재발급 시 기존 정보가 삭제되어 복구 불가능하니 주의가 필요합니다. 또한, 앱 키 재발급 시 기존 앱 키를 사용한 카카오 로그인 등 API 요청이 실패하게 됩니다. 따라서 앱 키 유출 사고 등 불가피한 경우를 제외하고는 운영 중인 서비스에서 앱 키를 재발급하지 않아야 합니다.

앱은 서비스 정보를 카카오 플랫폼에 등록한 것이므로, 앱을 새로 등록하면 카카오디벨로퍼스(Kakao Developers, 이하 개발자 웹사이트)에 새로운 앱을 등록하면 기존 앱과 이름이 같더라도 다른 서비스로 인식됩니다. 따라서 기존 사용자가 로그인 시도 시 다시 카카오 로그인 및 회원 가입을 하게 되며, 사용자 정보 이전(마이그레이션, migration)도 불가능합니다.

또한 사용자 정보 중 회원 ID 역할을 하는 회원번호(user_id)는 앱 단위로 발급되므로, 새로 만든 앱에서는 같은 사용자라도 기존 회원 정보와 다른 값을 발급 받아서 동일 사용자인지 확인할 수 없게 됩니다. 때문에 앱을 새로 만들어 사용하면 기존 사용자들도 신규 가입을 해야 하는 상황이 벌어집니다.

즉, 앱 키 재발급 후 복구나 사용자 정보 이전이 불가능하므로, 동일 서비스 정보로 앱을 새로 만들어 쓰거나 앱 키 재발급을 통해 키를 변경하지 않도록 주의해야 합니다.

서비스 정보인 앱 이름, 아이콘, 회사명 변경이 필요하다면 앱 키 재발급 없이 [내 애플리케이션] > [일반] > [기본 정보]에서 수정합니다. 기본 정보에 대한 자세한 안내는 기본 정보의 용도를 참고합니다.

기존에 사용하던 앱의 관리 계정을 모두 분실해 정보 확인이나 수정이 불가능한 경우에는 Q. 애플리케이션 소유자를 변경하고 싶어요. 항목을 참고해 소유자를 변경하여야 합니다.

Q. "API limit has been exceeded." 에러가 발생합니다.

카카오 오픈 API는 매달 정해진 사용량만큼 무료로 제공됩니다. 사용량 제한(쿼터)을 넘어서면 "API limit has been exceeded." 에러가 발생하고 더 이상 해당 API를 사용할 수 없습니다. API마다 정해진 사용량 제한을 확인하려면 운영정책을 참고합니다.

만약 사용량 제한을 늘리고 싶다면 데브톡에 대상 앱과 사유를 담아 협의 또는 제휴를 요청합니다. 지도/로컬 API에 대한 쿼터 상향이 필요한 경우에는 공지사항을 우선 확인합니다. 카카오는 요청 내용을 검토하고 제휴를 체결하거나 임시로 사용량 제한 범위를 조절할 수 있습니다.

카카오 SDK

Q. [Android SDK] android keyhash mismatched! 에러가 발생합니다.

앱에서 사용한 키 해시값이 플랫폼에 등록한 키 해시값과 달라 발생하는 에러입니다.

권장 앱 게시 방법인 안드로이드 앱 번들(Android App Bundles)을 사용하는 경우, Google Play Console에서 릴리즈 키 해시 구하기 방법으로 얻은 값을 플랫폼에 등록해야 합니다. 앱 번들 방식은 앱에 업로드 키로 서명한 후 Play Console에 업로드 하면 Google Play가 APK 생성 및 앱 서명을 직접 하는 게시 방법입니다. 따라서 이 경우, 터미널이나 Android SDK에서 얻은 릴리즈 키 해시 값을 사용할 수 없습니다.

Q. [iOS SDK] 로그인 시도시 '+[NSBundle ko_appKey]: unrecognized selector sent to class 0x111111'의 에러가 발생하면서 앱이 강제 종료(crash)됩니다.

현재 작업중인 프로젝트에서 Other Linker Flags에 "-all_load"가 추가되었는지 확인해 봅니다. 자세한 내용은 Framework 설정을 참고합니다.

Q. [iOS SDK] Other Linker Flags에 "-all_load"를 추가하였을 경우, 타 라이브러리와의 충돌로 빌드가 실패합니다.

-all_load 대신 -force_load $(SRCROOT)/KakaoOpenSDK.framework/KakaoOpenSDK를 사용하여 Kakao SDK를 강제 로드합니다.

Q. [iOS SDK] 웹뷰 등 취소 후 다시 로그인 시도시 "The operation is cancelled."가 반복적으로 나오는 현상이 생깁니다.

openWithCompletionHandler 호출 전에 [[KOSession sharedSession] close]를 해주는 로직이 빠지지 않았는지 확인합니다. 로그인 예제를 통해 구현을 다시 한 번 확인합니다.

카카오 로그인

Q. 로그인 구현 중 에러 화면이 나와요.

에러 발생 시 응답의 에러 메시지로 원인을 알 수 있습니다. 주로 처음 카카오 로그인을 구현하고 인가 코드 받기를 요청했을 때, "Invalid redirect" 에러가 발생하는 경우가 많습니다.

...error="invalid_grant", error_description="Invalid redirect:...

해당 에러 메시지를 보면 '올바르지 않은 redirect_uri'라는 문구가 있습니다. 이 에러는 인가 코드 발급 요청 시 전달된 redirect_uri가 앱 정보에 등록된 값과 다를 때 발생합니다. Redirect URI 등록 가이드를 참고해 실제 카카오 로그인 절차를 수행하는 웹 페이지 등의 OAuth Redirect URI를 입력해야 합니다. 이미 Redirect URI 등록을 했다면, 에러 메시지를 통해 요청 시 파라미터로 전달된 redirect_uri 값을 확인하여 등록된 값과 일치하는지 비교합니다.

이 밖에도 API 호출 시 주로 발생하는 에러는 에러 코드와 메시지가 명시되어 있습니다. 에러 유형은 각 플랫폼 레퍼런스에서 참고할 수 있습니다. 카카오 로그인 중 발생한 에러는 카카오 로그인 > 문제 해결을 참고합니다.

Q. 카카오 로그인 버튼을 눌렀는데 카카오톡으로 가지 않고 계정 정보 입력 화면이 나와요.

로그인 버튼을 눌렀을 때 카카오톡으로 이동하며 간편 로그인을 할 수 있어야 하는데, 카카오계정 정보 입력 화면이 나타난다면 인증 유형(Auth Type) 설정을 했는지 확인합니다.

카카오 로그인은 인증 유형에 따라 다르게 동작합니다. 다음과 같은 인증 유형이 있습니다:

  • 현재 사용할 수 있는 모든 인증 수단
  • 카카오계정 및 비밀번호
  • 카카오톡 사용자 정보
  • 카카오스토리 사용자 정보

REST API를 사용할 때는 카카오계정 및 비밀번호로만 사용자 인증이 가능합니다. JavaScript SDK, Legacy iOS SDK, Legacy Android SDK를 사용하면 다음과 같은 옵션이 제공됩니다:

Platform Parameter Description
JavaScript throughTalk 카카오톡 간편 로그인 사용 여부, Boolean
Android AuthType 사용자 인증 타입 지정, 미지정 시 KAKAO_LOGIN_ALL
KAKAO_TALK: 카카오톡 간편 로그인
KAKAO_STORY: 카카오스토리 간편 로그인
KAKAO_ACCOUNT: 카카오계정 및 비밀번호 입력 웹뷰
KAKAO_TALK_EXCLUDE_NATIVE_LOGIN: 카카오톡 간편 로그인, 카카오톡에 연결된 카카오계정이 없을 경우 카카오계정 가입 버튼 제공, KAKAO_TALK과 중복 지정 불가
KAKAO_LOGIN_ALL: 모든 인증 유형 사용
iOS authType 사용자 인증 타입 지정, 미지정 시 nil
KOAuthTypeTalk: 카카오톡 간편 로그인
KOAuthTypeStory: 카카오스토리 간편 로그인
KOAuthTypeAccount: 카카오계정 및 비밀번호 웹뷰
nil: 옵션 지정하지 않음

위 옵션은 서비스 상황에 따라 인증 유형을 지정할 수 있도록 제공됩니다. SDK에서는 옵션마다 인증 수단 실행 경로가 상수로 지정돼 있으므로, 별도 지정이 필요하지 않습니다.

Q. 카카오톡으로 로그인한 뒤 서비스 페이지나 앱으로 돌아오지 않아요.

모바일 웹에서 카카오톡 로그인 시 해당 현상이 발생한다면 정상 동작입니다. 스마트폰 OS 정책에 따라 앱에서 임의로 다른 앱을 불러올 수 없습니다. 사용자가 직접 서비스 웹 페이지(브라우저)로 돌아가야만 합니다. 카카오톡 로그인 화면에서도 안내 문구를 보여줍니다. 서비스 페이지로 이동했을 때 로그인이 완료된다면 기능이 정상 동작하는 것입니다.

Q. 회원 가입 후 다시 로그인했을 때 정상적으로 로그인 완료되지 않아요.

웹 브라우저의 경우, 로그인한 사용자의 정보가 회원 정보에 잘 저장되어 있고 로그인 시 올바르게 불러와지는지 확인합니다. 로그인 후 사용자 정보를 호출해 회원번호(user id)를 받은 뒤, 이 정보로 서비스 회원 정보에서 해당 사용자의 정보를 불러오는 부분에 이상이 없어야 합니다.

네이티브 앱의 경우, 카카오 로그인 인증 정보는 토큰으로 관리됩니다. 토큰은 실제 인증을 담당하는 액세스 토큰, 액세스 토큰 만료 시 간편하게 재발급 받을 수 있도록 해 주는 리프레시 토큰 두 가지가 있습니다. 사용자가 로그아웃을 하지 않았다면, 일정 기간 내 다시 로그인했을 때는 액세스 토큰 또는 리프레시 토큰을 사용해 로그인할 수 있습니다. 토큰 유효 기간 동안은 다시 카카오톡이나 카카오계정으로 사용자 정보를 인증할 필요가 없습니다.

  • 사용자가 로그아웃하지 않았음
  • 토큰 유효 기간 이내임

위 두 가지 조건을 만족함에도 토큰을 사용한 재로그인이 불가능하다면, 다음과 같이 확인합니다.

  • 토큰 유효성을 검사합니다. 토큰이 유효하다면 다음 단계로, 토큰이 유효하지 않다면 삭제 후 사용자가 다시 로그인하도록 처리합니다.
  • 토큰이 유효하지만 정상적으로 로그인되지 않는다면 서비스에서의 로그인 절차를 확인합니다. 회원 가입 처리나 정보 갱신이 올바르게 이뤄지지 않았을 수 있습니다.
  • 이 외, 인증 과정에 에러가 발생해 로그인에 실패하는 경우가 있습니다. 에러 메시지를 참고해 원인을 파악합니다.

Q. 로그아웃이 안 돼요.

REST API라면 로그아웃 요청에 사용된 토큰 정보가 올바른지 확인합니다. Kakao SDK 사용 시에는 로그아웃 요청과 함께 토큰과 쿠키가 삭제되기 때문에 함수 호출 결과와 무관하게 실질적인 로그아웃이 이뤄지므로, API 동작 외의 다른 부분에 실패 원인이 있을 가능성이 높습니다.

Q. 한 번에 로그인된 모든 기기에서 로그아웃할 수 없나요?

현재 제공되지 않는 기능입니다. 카카오계정은 여러 기기에서 로그인하는 것(Multi device)을 지원합니다. 따라서 로그아웃 요청은 현재 사용 중인 기기에서만 로그인을 해제하고, 다른 기기의 로그인 상태는 유지됩니다.

Q. 로그아웃 후 다시 로그인할 때 이전에 로그인한 계정으로 로그인됩니다.

로그아웃 처리가 올바르게 완료되지 않았거나, 브라우저에 저장된 쿠키 때문에 발생하는 현상입니다. iOS나 Android SDK 사용 시 정상적으로 로그아웃한 경우 토큰과 쿠키가 모두 지워지고, REST API 사용 시에는 액세스 토큰과 리프레시 토큰이 삭제됩니다. 현재 카카오계정 쿠키는 삭제되지 않으므로 다시 인증을 시도하면 같은 계정으로 로그인될 수 있습니다.

Q. 로그아웃 후 다시 로그인하면 ID가 변경되나요?

아닙니다. 각 서비스 사용자에게 발급되는 회원번호(user id)는 고유한 값이며 로그아웃이나 탈퇴를 하더라도 변하지 않습니다.

Q. 사용자 정보를 조회했을 때 특정 항목이 비어 있습니다.

사용자가 간편가입 시 제공 동의한 항목이라도 값이 비어 있을 수 있습니다. 사용자가 카카오 서비스 이용 중 한 번도 해당 정보를 입력한 적 없는 경우입니다. 이에 대비하여 간편가입 시 제공 동의한 정보가 비어 있을 때, 카카오에서 사용자로부터 해당 정보를 입력 받아 서비스에 제공하는 기능이 있습니다. 사용자 관리의 각 항목에서 카카오계정 정보를 통한 수집 옵션을 설정하면 됩니다.

만약 카카오계정 정보를 통한 수집 옵션이 꺼져 있어서 일부 회원 정보에 누락이 있을 경우, 옵션을 켠 뒤 사용자가 다시 로그인했을 때 정보 입력 과정을 거치게 됩니다. 로그인 후 갱신된 사용자 정보로 회원 정보를 업데이트합니다.

해당 옵션이 켜져 있어도, 사용자가 카카오에 정보 제공을 거부한 항목은 빈 값입니다. 카카오에서도 그 정보를 보유하고 있지 않기 때문입니다. 비어 있는 정보가 서비스 이용에 꼭 필요한 것이라면, 서비스 이용 중 사용자가 직접 정보를 입력하거나 가입을 취소할 수 있도록 해야 합니다.

카카오계정 정보를 통한 수집을 켠 후에도, 특정 항목에 대한 조회를 할 수 없어요.

카카오계정을 통한 수집 옵션을 켜기 전에 사용자가 이미 해당 항목에 대한 제3자 제공 동의를 했다면, 서비스에서 다시 동의 요청을 하더라도 수집과 동의 절차를 거치지 않습니다. 사용자가 연결을 끊은 후에는 다시 카카오계정을 통한 수집 기능이 동작합니다.

Q. 동의 화면에 특정 필수 동의 항목이 노출되지 않습니다.

특정 동의 항목을 '필수 동의'로 설정했더라도, 사용자에게 정보가 없다면 동의 화면에 해당 동의 항목이 노출되지 않습니다.

이 경우, 해당 동의 항목에 '카카오계정 정보를 통한 수집(수집 후 제공)' 옵션을 설정합니다. '수집 후 제공' 옵션은 카카오 로그인 시 사용자가 해당 동의 항목의 정보를 갖고 있지 않다면, 사용자로부터 정보를 입력 받아 동의 화면에서 동의 받을 수 있도록 해 줍니다. 단, 전화번호는 '수집 후 제공' 옵션을 사용할 수 없으므로 유의합니다.

'수집 후 제공' 옵션에 따라 사용자의 정보 입력이 필요할 경우, 사용자는 추가정보 입력 단계를 거쳐 카카오 로그인 동의 화면으로 이동합니다. 아래는 추가정보 입력 단계에서 나타나는 화면의 예시입니다.

Q. 카카오계정 사용자 정보가 바뀌었을 때 어떻게 처리하나요?

사용자마다 고유하게 발급되는 ID나 본인 인증 정보인 CI를 제외하면, 사용자 정보는 항상 변경될 가능성이 있습니다. 로그인 시 사용자 정보 가져오기를 통해 최신 정보로 갱신합니다.

Q. 가입에 필수는 아니지만 서비스 이용 중 필요한 추가 정보를 따로 받을 수 있나요?

추가 정보 동의 받기 기능을 사용합니다. 사용자가 간편 가입 시 선택 항목이어서 제공 동의하지 않은 항목이라도, 해당 정보를 필요로 하는 기능을 사용자가 쓰려고 한다면 다시 정보 제공에 동의할 것인지 물어볼 수 있습니다. 하지만 추가 정보 동의 요청에도 사용자가 거부한디면 해당 기능을 제공하지 않아야 합니다.

Q. 카카오 로그인과 카카오싱크가 제공하는 사용자 정보 종류를 알려주세요.

카카오가 제공하는 사용자 정보의 종류는 사용자 정보에서 확인할 수 있습니다.

단, 사용자 정보를 제공 받으려면

  1. 동의 항목이 설정되어 있어야 합니다.
  2. 설정된 동의 항목에 대해 사용자가 제공 동의를 해야 합니다.

Q. 사용자가 어떤 사용자 정보를 제공하기로 동의했는지 확인할 수 있나요?

네. 앱에서 어떤 동의 항목을 설정하였고, 사용자가 어떤 동의 항목에 동의했는지 동의 내역 확인하기 API를 통해 확인할 수 있습니다.

혹은 사용자 정보 가져오기 API의 응답을 통해서도 확인할 수 있습니다. 사용자가 동의한 정보와 함께 needs_agreement를 통해 추가적인 동의가 필요한 항목을 확인할 수 있습니다.

Q. 이메일 값을 필수로 설정했는데, 일부 사용자의 이메일 값이 비어 있습니다.

사용자 이메일 정보가 필요한데 값을 받지 못한 경우라면, 다음 순서로 확인합니다.

  1. 동의 항목에 이메일을 설정했는지 확인합니다. 필수 또는 선택으로 설정해야만 사용자 이메일 정보를 받을 수 있습니다.
  2. 카카오 로그인 시 동의 화면에 이메일 항목이 포함되어 있었는지 확인합니다. 동의 항목에 이메일이 설정되지 않았거나, 사용자가 이메일 정보를 갖고 있지 않은 경우에는 이메일 항목이 보이지 않습니다.
  3. 해당 사용자가 이메일을 소유하고 있는 계정인지 확인합니다. 사용자 정보의 has_email 값이 true라면 이메일 정보가 있는 사용자이지만, 해당 사용자가 카카오 로그인 동의 화면을 거칠 당시에는 이메일 값이 없는 경우였을 수 있으므로 추가 항목 동의 받기를 통해 다시 한 번 이메일 정보를 요청합니다.

Q. 전화번호는 수집 후 제공 옵션을 사용할 수 없나요?

카카오계정(전화번호) 동의 항목은 수집 후 제공 설정을 사용할 수 없습니다. 전화번호는 카카오계정에 연결된 카카오톡에서 가져오며, 카카오톡을 사용하지 않는 카카오계정인 경우에는 전화번호를 확보할 수 없기 때문입니다. 만약 전화번호가 필수 동의 항목으로 설정돼 있음에도 값이 비어 있는 사용자가 있다면, 해당 사용자는 카카오톡을 사용하지 않아 카카오에서 전화번호를 제공할 수 없는 경우입니다. 이 때는 자체적으로 전화번호를 수집 및 저장하여야 합니다.

카카오톡 소셜

Q. 특정 친구가 친구 목록 가져오기 API 응답에 포함되어 있지 않습니다.

다음 친구 정보 제공 불가 사유 중 해당하는 항목이 있는지 확인합니다.

  1. 친구 목록 가져오기 API 사용 권한이 없습니다.
    : 사용 권한 신청를 참고해 권한을 신청합니다. 테스트 목적인 경우, 권한이 없어도 팀원에 한해 사용 가능하므로 아래 2번을 참고합니다.
  2. 해당 친구가 앱의 팀원이 아닙니다.
    : 친구 목록 가져오기 API는 사용 권한을 받기 전 팀원에 한해 사용 가능합니다. 정보를 조회하려는 친구를 팀원으로 추가해야 합니다. 팀원을 추가하지 않고 모든 사용자를 대상으로 친구 목록 가져오기 API를 사용하려면 사용 권한 신청를 참고해 권한을 신청합니다.
  3. 해당 친구가 앱에 카카오 로그인한 적이 없습니다.
    : 해당 친구가 카카오 로그인을 통해 앱과 연결되어야 합니다. 또한 "카카오 플랫폼 내 친구 목록" 동의 항목에 동의해야 합니다. 아래 4번을 참고합니다.
  4. 해당 친구가 앱에 카카오 로그인했으나, "카카오 플랫폼 내 친구 목록" 동의 항목에 동의하지 않았습니다.
    : 해당 친구가 카카오 로그인을 통해 앱과 연결된 후, 카카오 로그인 또는 추가 항목 동의 받기를 통해 "카카오 플랫폼 내 친구 목록" 동의 항목에 동의해야 합니다.
  5. 사용자가 해당 친구를 숨김 친구로 설정하거나 차단했습니다.
    : 사용자가 숨김 또는 차단 설정한 친구는 친구 목록 가져오기 API 응답에 포함되지 않습니다. 이 경우, 사용자가 카카오톡에서 해당 친구의 상태를 변경해야 합니다.

카카오톡 친구 목록 가져오기 API는 응답 조건을 만족한 친구들의 정보만 제공할 수 있습니다. 친구 정보 제공 조건에 대해 자세히 확인하려면 카카오톡 소셜 > 이용 정책을 참고합니다.

메시지

Q. 메시지의 버튼과 링크는 어떻게 설정하나요?

카카오링크와 카카오톡 메시지 API를 통해 보내는 메시지는 이미지, 텍스트, 버튼에 걸린 링크 경로를 설정할 수 있습니다. 이 링크 주소는 기본적으로 [내 애플리케이션] > [플랫폼]에 설정된 정보를 따릅니다. 메시지의 링크와 버튼의 애플리케이션(앱) 실행 경로는 Android 패키지 이름과 마켓 URL, iOS 번들 ID와 마켓 URL을 설정대로 동작합니다. 웹 페이지로 이동하도록 링크를 설정하는 경우에는 웹 플랫폼의 URL을 따릅니다.

[도구] > [메시지 템플릿]에서 링크와 버튼에 걸린 경로를 수정하거나, 클라이언트 또는 서버에서 메시지를 구성할 경우에 링크 값을 지정하는 경우에도 앱 설정을 따르며, 일부 정보를 추가 입력할 수 있습니다. 웹 사이트의 도메인은 플랫폼 설정에 등록된 도메인 중 하나를 사용 가능하고, 하위 경로는 직접 입력할 수 있습니다. Android와 iOS의 경우, 앱 실행 시 전달할 파라미터를 지정할 수 있습니다.

링크와 버튼에는 여러 플랫폼의 정보를 입력할 수 있지만, 동작 시 우선 순위에 따라 사용자를 이동시킵니다. 웹 사이트로 이동하는 경우에는 사용자가 PC와 모바일 기기 중 어디에서 링크나 버튼을 눌렀는지에 따라 다르게 동작합니다. PC인 경우에는 윈도우즈(Windows), 맥(Mac) OS별로 앱 실행 경로를 지정할 수도 있습니다. 앱 실행인 경우에는 앱이 설치되어 있다면 실행하고, 그렇지 않다면 마켓 주소로 이동합니다.

Q. 메시지에 설정한 버튼이 나오지 않아요.

사용자가 메시지를 확인한 카카오톡의 실행 환경, [내 애플리케이션] > [플랫폼] 설정에 따라 메시지 버튼이 출력되지 않을 수 있습니다. 메시지에 버튼을 설정했음에도 사용자 환경에 따라 버튼이 출력되지 않아 어색해보이는 현상을 막으려면 앱의 플랫폼 설정에 Web 도메인을 등록합니다. Web 플랫폼 및 도메인이 등록되어 있을 경우, 사용자의 카카오톡 실행 환경에 따라 버튼에 적용 가능한 링크가 없더라도 Web 플랫폼 설정이 공통 링크로써 버튼에 적용되어 출력됩니다. 자세한 내용은 메시지 템플릿을 참고합니다.

Q. 메시지의 앱 실행 버튼을 눌러도 아무런 반응이 없습니다.

먼저, 메시지를 받고 앱을 실행하려는 기기에 해당 앱이 설치되어 있는지 확인합니다.

앱이 설치되어 있다면, Android SDK 사용자는 커스텀 URL 스킴 설정하기, iOS SDK 사용자는 Info.plist 설정을 참고하여 해당 앱에 카카오링크 커스텀 URL 스킴 생성을 위한 정보가 올바르게 설정되어 있는지 확인합니다.

앱이 설치되어 있지 않다면 [내 애플리케이션] > [플랫폼]에서 해당 앱의 Android 및 iOS 마켓 URL이 설정되어 있는지 확인합니다.

Q. 메시지의 앱 실행 버튼을 누르면 앱이 실행되지 않고 오픈마켓으로 이동합니다.

Android SDK 사용법iOS SDK 사용법을 참고하여 해당 앱에 커스텀 URL 스킴 등록을 위한 정보가 올바르게 설정되어 있는지 확인합니다.

Q. 사이트 주소를 변경했더니 카카오링크 오류가 발생합니다.

카카오톡이나 카카오링크 메시지 API는 앱의 플랫폼 설정에 등록된 도메인에서만 정상 동작합니다. 메시지 API 이용 시 웹, Android, iOS 중 서비스에서 사용 중인 플랫폼을 반드시 등록하여야 하며, 사이트 주소 변경 시 바뀐 도메인을 플랫폼 정보에 추가하여야 합니다. 메시지에 포함된 버튼과 링크는 앱 설정을 바탕으로 설정되며, 등록되지 않은 도메인 주소는 메시지 링크에 사용할 수 없습니다.

카카오싱크

Q. 카카오싱크의 핵심 기능이 뭔가요?

카카오싱크의 핵심 기능은 두 가지입니다.

  • 번거로운 정보 입력 없이 하나의 동의창에서 약관과 제3자 정보제공, 채널 추가를 모두 확인하고 동의하는 간편가입
  • 카카오톡 채널을 비롯한 비즈니스 솔루션을 보다 효과적으로 활용할 수 있게 해주는 카카오계정 정보

자세한 내용은 카카오싱크 가이드를 참고합니다.

Q. 카카오싱크를 사용하면 카카오에서 우리 서비스 데이터를 가져가나요?

아닙니다. 카카오는 서비스 데이터에 접근하지 않습니다. 카카오는 서비스로부터 API 요청을 받고, 이에 따라 정보를 제공하거나 플랫폼 내부 처리를 수행할 뿐입니다.

Q. 카카오 로그인을 쓰고 있는데, 카카오싱크 도입에 도움이 될까요?

네, 카카오 로그인은 카카오싱크에서도 동일하게 사용됩니다. 카카오싱크 적용 시에는 카카오 로그인에 간편가입을 비롯한 추가 기능을 쓸 수 있습니다. 자세한 내용은 카카오싱크 가이드를 참고합니다.

Q. 카카오싱크를 써서 더 쉽게 만들 수 있는 기능이 뭔가요?

카카오싱크 간편가입을 사용하면 회원 가입 절차가 무척 간단해집니다. 이용 약관 동의, 사용자 정보 입력, 카카오톡 채널을 통한 마케팅 정보 수신 동의 과정을 하나의 동의 화면에서 처리할 수 있습니다.

카카오싱크 서비스는 다른 카카오 오픈 API도 이용할 수 있습니다. 같은 서비스를 사용하는 카카오톡 친구 목록 보여주기, 카카오링크로 상품 정보 공유하기 등 소셜 기능도 API로 보다 쉽게 구현 가능합니다.

자세한 내용은 카카오싱크 가이드를 참고합니다.

Q. 이미 운영 중인 실제 서비스에 영향을 주지 않고 테스트할 수 있나요?

테스트 앱으로 운영 중인 서비스에 영향을 주지 않고 테스트할 수 있습니다. 테스트 앱 설정에 대해서는 애플리케이션 등록을 참고합니다.

Q. 카카오톡에서 서비스 페이지를 열면 자동으로 로그인되게 할 수 있나요?

자동 로그인 기능을 사용해 구현할 수 있는 기능입니다. 사용자의 가입 상태에 따라 로그인 또는 미로그인 상태 중 적합한 화면을 보여줄 수 있습니다. 이 기능은 카카오톡 인앱브라우저에서만 정상 동작합니다.

Q. 카카오싱크 간편가입 화면이 뜨지 않습니다. 무엇을 해야 하나요?

간편가입 기능은 카카오싱크 서비스에만 제공됩니다. 따라서 기본 설정에 포함되어 있지 않기 때문에, 카카오싱크 신청 및 검수를 마친 후 [내 애플리케이션] > [카카오 로그인] > [간편가입] 옵션을 켜야(ON) 합니다.

Q. 카카오싱크 간편가입을 적용했는데, 자꾸 회원 가입 화면이 떠요.

사용자가 카카오싱크 간편가입 시 서비스 데이터베이스(DB)에 회원으로 등록되지 않았다면 정상적으로 서비스를 이용할 수 없습니다. 카카오는 서비스 데이터베이스(DB)에 접근하지 않기 때문에, 서비스 회원 정보에 사용자를 대신 추가해줄 수 없습니다. 회원 정보를 저장하는 처리는 직접 구현해야 합니다.

  • 신규 가입자 : 카카오싱크 간편가입을 한 사용자 정보를 바탕으로 서비스 데이터베이스에 새로운 회원으로 저장합니다.
  • 기존 가입자 : 카카오싱크 적용 전부터 운영 중이었던 서비스라면 카카오싱크를 통해 로그인한 사용자가 기존 가입자일 수 있습니다. 연계정보(CI), 전화번호 등 카카오계정의 사용자 정보로 기존 가입자인지 확인합니다. 기존 가입자라면 카카오 로그인으로도 기존 사용자로서 접속할 수 있도록 가입 기능을 구현합니다. 동의한 약관을 확인해 사용자가 추가 확인해야 할 약관이 있는지도 확인해야 합니다.

자세한 내용은 서비스 설계하기를 참고합니다.

Q. 카카오싱크 간편가입 시 필수 정보가 누락되어 실패합니다.

두 가지 경우가 있습니다.

  • 해당 정보를 회원 가입 필수 정보로써 서비스에서 받을 수 있도록 설정하지 않았습니다.

카카오싱크 신청(검수 요청) 시 회원 가입 필수 사용자 정보 항목을 모두 필수로 설정하셔야 합니다. 만약 누락된 항목이 있다면 다시 개인정보제공 항목 검수를 받아 추가합니다.

  • 해당 정보를 회원 가입 필수 정보로 설정했지만, 사용자 정보의 해당 값이 비어 있습니다.

필수 항목이지만 사용자가 정보 제공을 거부한 경우입니다. 카카오에서도 해당 정보를 제공 받을 수 없기 때문에, 카카오싱크 간편가입 화면에서도 동의 및 제공 받을 수 없습니다. 회원 가입 시 필수 정보가 비어 있다면, 로그인 후 사용자가 직접 해당 정보를 입력하고 회원 가입하거나 가입을 취소할 수 있도록 동선을 짜야 합니다.

자세한 내용은 카카오싱크 신청하기, 사용자 동의 가이드를 참고합니다.

Q. 사용자가 기존 가입자인지 어떻게 확인할 수 있나요?

서비스에서 제공 받는 카카오계정 사용자 정보 중, 기존 회원 정보에서 동일 사용자를 찾아내는 단서로 쓸 수 있는 항목을 찾습니다. 대개 이메일이나 전화번호 등 고유한 정보들이 쓰입니다.

하지만 카카오계정의 이메일이나 전화번호는 사용자가 변경할 수 있는 값이기 때문에 특정 사용자를 특정하지 못할 수도 있습니다. 이러한 경우에 대비해 카카오 플랫폼에서 제공하는 사용자 식별 정보 사용이 권장됩니다. 카카오계정은 서비스에 연결될 때 고유한 숫자 값인 회원번호(ID)를 발급 받습니다. 이 값은 동일 사용자가 탈퇴하고 재가입하더라도 변경되지 않으니, 카카오싱크 사용자 중 동일 사용자를 찾아낼 때 유용합니다.

Q. 로그인한 사용자가 기존 가입자인 경우, 카카오 로그인 시 어떻게 처리해야 하나요?

서비스마다 회원 체계나 사용자 동선, 정책 등이 다르므로 카카오에서 구체적인 처리 방법을 안내하기는 어렵습니다. 다만 사용자가 혼란스러워하지 않도록 처리 규칙과 정책을 만들어야 합니다. 자세한 내용은 기존 회원 처리를 참고합니다.

Q. 카카오싱크 이용 시, 이용약관과 개인정보처리방침 등은 반드시 카카오싱크 간편가입 기능으로만 동의 받아야 하나요?

카카오싱크 간편가입을 사용하면 사용자가 여러 차례의 회원 가입 페이지를 거치지 않고도 쉽게 가입을 요청할 수 있습니다. 하지만 서비스 상황에 따라 서비스 약관이나 사용자 정보를 추가로 받아야 할 때가 있습니다. 이 경우, 카카오 로그인 후 서비스 페이지에서 직접 약관 동의나 정보 제공을 받습니다.

하지만 추가 정보 입력 단계에서 사용자가 회원 가입을 완료하지 않고 이탈할 가능성이 있으므로, 추가 정보는 가능한 필요할 때 별도로 수집 절차를 거치게끔 구현하는 것을 권장합니다. 자세한 내용은 회원 가입 및 탈퇴 가이드를 참고합니다.

Q. 카카오싱크 사용자가 탈퇴했는데 기존 정보가 그대로 남아 있습니다.

카카오싱크 서비스에서 사용자가 탈퇴할 때는 두 가지 조치가 이뤄져야 합니다.

  • 카카오싱크 서비스 앱과 사용자 카카오계정 연결 끊기
  • 서비스 회원 데이터베이스(DB)에서 사용자 정보 삭제

위 두 가지 조치가 이뤄지지 않았다면 사용자 탈퇴가 완전하지 않습니다. 특히 카카오는 서비스 DB에 접근하지 않기 때문에, 사용자 정보 삭제는 서비스에서 처리되어야 합니다.

카카오싱크 서비스와 사용자 카카오계정의 연결을 끊는 기능에 대해서는 로그아웃연결 문서를 참고합니다.

Q. 탈퇴한 서비스에서 계속 채널 메시지가 옵니다.

서비스 앱과 카카오톡 채널은 별개의 존재입니다. 서비스 앱과의 연결을 끊더라도 카카오톡 채널은 추가 상태가 유지됩니다. 이러한 고객 문의를 받으신다면 사용자가 카카오톡에서 채널 차단을 하도록 안내합니다.

Q. 카카오싱크 서비스에서 카카오계정을 탈퇴한 사용자를 알 수 있나요?

사용자가 카카오계정 탈퇴를 하려면 먼저 연결된 서비스들을 정리해야 합니다. 모든 서비스와의 연결을 끊은 뒤라야 카카오계정 탈퇴가 가능합니다. 따라서 카카오계정이 탈퇴되기 전 연결 끊기 알림을 받아 후처리를 할 수 있습니다.

Q. 탈퇴 후 다시 가입했는데 기존 사용자 정보가 남아 있습니다.

탈퇴 시, 서비스 회원 데이터베이스에서 해당 사용자의 정보를 완전히 삭제했는지 확인합니다. 같은 카카오계정 사용자, 같은 서비스라면 탈퇴 후 다시 연결되더라도 사용자 정보 ID는 기존과 같은 값으로 발급 받습니다. 탈퇴로 인한 연결 끊기 시 서비스 이용과 관련된 정보는 모두 삭제되지만, ID는 같은 값으로 재발급됩니다. 이로 인해 기존 사용자 정보가 남아 있다면 문제가 될 수 있으니, 서비스 정책과 관련 법령에 따라 탈퇴 사용자 정보를 올바르게 삭제 처리해야 합니다.

Q. 탈퇴한 서비스가 카카오계정-연결된 서비스 관리에 나옵니다.

카카오싱크 서비스에서는 회원 데이터베이스에서 사용자 정보를 지우는 것만으로는 탈퇴 처리가 완전하지 않습니다. 연결 끊기 요청을 통해 사용자가 회원 탈퇴할 때 서비스와 카카오계정의 연결을 끊어야 합니다.

카카오싱크에 대한 자세한 설명과 예시는 서비스 소개가이드에서 확인할 수 있습니다.

카카오싱크 간편가입, 사용자 정보 관련 정보는 고객센터-카카오싱크에서 확인하실 수 있습니다.