SDK 버전 : 2.3.0
앱ID : 957978
안녕하세요 카카오 api 연동중 궁금한게 있어 문의드립니다
현재 JavaScript SDK 를 이용하여 친구를 선택하여 선택된 친구의 이름과 전화번호를 셋팅하여 예약을 하는 서비스를 개발중에 있습니다
selectFriend() response 항목에는 전화번호 항목이 없는데 혹시 선택된 친구의 전화번호를 가져올수있는 방법이나 restAPI 가 있을까요??
SDK 버전 : 2.3.0
앱ID : 957978
안녕하세요 카카오 api 연동중 궁금한게 있어 문의드립니다
현재 JavaScript SDK 를 이용하여 친구를 선택하여 선택된 친구의 이름과 전화번호를 셋팅하여 예약을 하는 서비스를 개발중에 있습니다
selectFriend() response 항목에는 전화번호 항목이 없는데 혹시 선택된 친구의 전화번호를 가져올수있는 방법이나 restAPI 가 있을까요??
안녕하세요.
아쉽지만, 전화번호는 제공되지 않습니다.
친구목록의 회원번호(id)를 참고하여 서비스측에 저장되어 있는 전화번호를 사용 부탁드립니다.
서비스 측이라하면 저희쪽 서비스단을 말씀하시는건가요?? 아님 카카오에 다른 서비스와 연결시켜서 전화번호를 가져올수있는건가요??
친구 정보 제공 조건
1. 친구가 앱과 연결된 상태일 것
2. 친구가 앱 연결 시 [카카오 서비스 내 친구 목록 제공] 동의 항목에 동의한 상태일 것
3. 친구가 숨김 또는 차단 친구가 아닐 것
4. 친구의 프로필 공개 설정이 공개 상태일 것
5. (친구 API 사용 권한이 없는 경우) 앱의 팀원일 것
친구 정보 제공 조건에 따라 서비스측에 연결된(카카오 로그인) 사용자만이 목록에 노출됩니다.
따라서, 친구 목록에서 제공되는 회원번호(id)를 참고하여 전화번호를 얻기 위해서는 다음과 같은 흐름으로 진행 됩니다.
질문이 많아 죄송합니다
위 내용을 봤을시에는 저희쪽 DB에 회원정보가 있어야 전화번호 조회가 가능할것으로 생각되는데 혹시
비회원 같은경우에는 전화번호를 가져올수 없는 상황이겠죠??
비회원 구분이 어떻게 되실까요?
목록에 조회되어야할 상대방이 위 친구 정보 제공 조건을 만족하지 못하면 조회되지 않습니다.
제가 이해하기론 저희 서비스단 DB에 저장되지않은 고객의 경우 전화번호를 가져올수 없다고 이해한게 맞나요??
질문이 많아 죄송합니다
DB 에 저장하지 않더라도 회원번호(id)로 어드민 키를 활용하여 사용자 정보 가져오기를 통해 전화번호를 확인할 수 있습니다.
사용자 정보 가져오기
단건: https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info
다건: https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#user-info-list
DB 에 저장하지 않더라도 회원번호(id)로 어드민 키를 활용하여 사용자 정보 가져오기를 통해 전화번호를 확인할 수 있습니다
위 내용을 카카오 친구 선택하기 에서 response에서 받은 회원번호를 어드민키로 활용할수 있으며 그 어드민키를 가지고 사용자 정보를 가져올수 있다라고 이해하였습니다
그후 예제 코드를 작성하였는데 App key is not supplied. 라는 message 가 나오네요
제가 이해한 내용이 맞나요??
아님 따로 셋팅을 빼먹은게 있을까요 ??
kakao.Picker.selectFriend()
.then(async (response) => {
await $.ajax({
type: "POST",
url: `https://kapi.kakao.com/v2/user/me`,
dataType: "json",
header: {
Authorization: `KakaoAK ${response.users[0].id}`,
"Content-type": "application/x-www-form-urlencoded",
},
data: {
target_id_type: "user_id",
target_id: response.users[0].id,
property_keys: ["kakao_account.phone_number"],
},
success: async (data) => {
console.log("data", data);
},
error: (error) => {
console.log("error.===>", error);
},
});
})
안녕하세요.
Admin Key는 노출되어서는 안되기에 백앤드에서만 사용가능합니다.
클라이언트에 노출되는 JS SDK에서는 사용 불가 합니다.