사용권한신청>팀멤버메시지보내기>팀원목록가져오기>code: -402=멤버동의항목 미처리 관련 에러

사용권한 허가 받으려면, 팀원에게 메시지 보내기 성공한 내역이 있어야 함.
팀원에게 메시지 보내려면,
팀원 uuid를 가져와야 하는데, 이 단계를 넘지 못하고 있습니다.
친구목록가져오기 시도의 결과는 code: -402.
동의항목이 부족해서 벌어지는 이 에러를 처리하기 위해 다음 세 가지 방법을 시도해봤는데,
해결되지 않고 있습니다. 어떻게 해야 할까요?

  1. 팀멤버 상대로 친구목록 가져오기 시도
    url = "https://kapi.kakao.com/v1/api/talk/friends"
    header = {“Authorization”: f’Bearer {ACCESS_TOKEN}’}

    response = requests.get(url, headers=header).text
    result = json.loads(response)
    print(result)
    결과: {‘msg’: ‘insufficient scopes.’, ‘code’: -402, ‘api_type’: ‘FRIENDS’, ‘required_scopes’: [‘friends’], ‘allowed_scopes’: [‘age_range’, ‘birthday’, ‘account_email’, ‘talk_message’, ‘gender’, ‘profile’]}

  2. 동의항목 friends 처리하기 위한 시도
    2-1) 멤버들에게 발송된 메일 회신, 멤버 아이디로 로그인해서 friends 동의항목 체크. 결과: code -402
    2-2) 추가항목동의받기
    url = f"https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code&scope=friends"
    response = requests.get(url)
    결과: <Response [200]>
    그러나 멤버들이 다시 로그인 시도해도 friends 동의항목 체크를 요구하는 절차는 나오지 않습니다.

어떻게 해야 할까요?
owner account: bernar.ryu@gmail.com
로그인 한 오너 아이디만 가져오고 있는 상태입니다.

  2-3) 어떤 개발자의 경험에 따라 
      kakao Developers>도구>REST API테스트>카카오톡친구목록받기 에서
      액세스토큰을 발급받고 <전송> 하였더니 동의항목 체크한 팀멤버 1인과  
      팀멤버가 아닌 지인 프로그래머 1분의 목록이 잡혔습니다.  희망이 생겼으나
 
       저 위쪽에서는 여전히 "code: -402, insufficient scopes"  상태입니다. 어떻게 해야 할까요?

안녕하세요~

아래 FAQ 참고해주세요~

404는 페이지 찾을 수 없음 에러입니다. 주소에 오타가 있는지 확인 부탁드려요~

Not found는 오타가 있었습니다. friends 뒤에 / 가 오타였습니다.

https://kapi.kakao.com/v1/api/talk/friends/

위에서 제시하신 “반드시 [추가 항목 동의 받기]를 통해서 동의받아야 합니다.” 이 부분을 해보고 있습니다. 고맙습니다.

1개의 좋아요

말씀하신대로 [추가항목동의받기] 실행해봤습니다.

  1. 1단계
    url = f"https://kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code&scope=friends"
    response = requests.get(url)
    print(response, type(response))
    <Response [200]>, <class ‘requests.models.Response’>

  2. 2단계: 팀원이 카톡에 다시 로그인 > 추가동의항목 창이 뜨지 않음.

  3. 3단계: 친구목록 받기 다시 시도, 결과: {‘msg’: ‘insufficient scopes.’, ‘code’: -402}

결국, 처음에 질문드리기 전에 해봤던 [추가동의항목받기]를 다시 한 번 한 셈입니다.
사실 팀원 2명은 각자 kakao developers에 가입하여,
[카카오 서비스내 친구목록(즐겨찾기 친구포함)] friends를 이미 동의해놓은 상태이기도 합니다.
길을 잃었습니다. 어떻게 해야 할까요?

{‘msg’: ‘insufficient scopes.’, ‘code’: -402}에러는 추가 동의를 못받았을때 발생합니다.

로그인 후, 1단계를 따로 호출하여 추가 동의 창이 떠야 정상 처리된 것입니다.

확인 부탁드려요~

1-1) owner id 수동 로그인 후,
1-2) 크롬브라우저 검색창에 owner 의 REST_API_KEY , REDIRECT_URI 를 삽입한
[추가항목동의받기] url을 복붙하여 위 1단계를 "따로 호출"하였습니다
1-3) “필수제공항목” 카카오 서비스내 친구목록(즐겨찾기 친구포함
동의창이 떴고 동의하였습니다 - 이미 여러번 수없이 동의한 것이긴 합니다.
20210602_필수제공항목

1-4) 그 후, 코딩된 [친구목록가져오기]를 시도했습니다만,
결과는 ‘code: -402’ 입니다.

  1. 혹시나 해서 팀원 id로 수동 로그인 후 위 1) 과정을 다시 해봤는데, 결과는 마찬가지 입니다.

말씀하신
"로그인 후"/
“1단계를 따로 호출하여”/
“추가 동의 창이 떠야”/
“정상 처리된 것입니다”/
방법대로 한 것이 맞는지요?

네, 캡쳐해주신 화면을 보면 정상 처리 한 것으로 보이는데요.

에러는 권한이 부여안된 상황입니다.

제가 접근하여 확인할 수 있는 주소 있을까요?

어떤 주소를 말씀하시나요?

카카오 로그인과 추가 권한동의가 구현된 웹주소 알려주시면 설정 상태 확인해보겠습니다.

혹시, 추가 동의 받은 이후 리턴된 code 파라메터 이용하여 토큰 조회 하셨나요?

현재 서버구축중이라 로컬호스트에서만 작업하고 있습니다.

말씀하신 추가동의 받은후 리턴된 인가코드로 액세스토큰 조회,
다음 순서로 진행해봤습니다.

  1. 로그인
  2. 추가동의항목 페이지 열어서 동의하고 인가코드 받기
  3. 인가코드로 액세스토큰 다시 받기
  4. scope 문제는 해결됐습니다.

고맙습니다. 간단한 힌트에 답이 들어 있군요^^

1개의 좋아요

다음 목표인 친구목록가져오기 해봤습니다.

  1. 추가동의 받은 후/ 열린 페이지의 검색창에서 가져온 인가코드로/ 요청한/ 액세스토큰
    {‘access_token’: ‘XxsGRrJt0QvGFX4IKwlZZffV6NGogrZYMIbtqAo9dVoAAAF50EhhGw’, ‘token_type’: ‘bearer’, ‘refresh_token’: ‘218VK8TwSrbhIoypYGc6BA_1tjzh123ZFdy4hQo9dVoAAAF50EhhGg’, ‘expires_in’: 21599, ‘scope’: ‘age_range birthday account_email talk_message gender profile friends’, ‘refresh_token_expires_in’: 5183999}

  2. 위 액세스토큰으로 친구목록 가져오기
    url = “https://kapi.kakao.com/v1/api/talk/friends” #친구 정보 요청
    header = {“Authorization”: 'Bearer '+ ACCESS_TOKEN}
    response = requests.get(url, headers=header).text
    friends_dic = json.loads(response)
    print(friends_dic)
    {‘elements’: [], ‘total_count’: 0, ‘after_url’: None, ‘result_id’: ‘zbnYtN-AsYa2jr-Hv47R5NPk0-vahfeS9Zzvm_6M6Y3StNWjzL7Xo8aZqPeW-pbJos2S5Nci’, ‘favorite_count’: 0}

넥스트 스텝 힌트 부탁합니다.

친구 정보 제공 조건은 ➊친구인 사용자가 앱과 연결된 상태일 것, ➋사용자와 친구 모두 앱 연결 시 ‘카카오 서비스 내 친구 목록 제공’ 동의 항목에 동의한 상태일 것, ➌숨김 또는 차단 친구가 아닐 것 세 가지입니다. 조건을 모두 만족하는 친구만 친구 목록 가져오기 API 응답에 포함됩니다. (친구 API 권한을 받기 전이라면 팀멤버한정 위 조건이 충족 해야합니다.)

가이드 확인 부탁드려요~

https://developers.kakao.com/docs/latest/ko/kakaotalk-social/common#policy

팀원 2명에 대한 요청이고, 팀원들은 위 세가지 조건을 모두 충족한 상태입니다.

로그인한 계정과 친구계정 알려주시면 확인해보겠습니다.

owner id: bernar.ryu@gmail.com
member id: albatrosryu@gmail.com
diame55@naver.com
입니다.

확인해보니
albatrosryu@gmail.com, diame55@naver.com 계정은 577781 앱에 연결되어 있지 않습니다.

20210603_152939

팀멤버 등록과 앱연결은 다른 부분인데요.

해당 앱에 팀멤버도 카카오로그인하여 연결되야합니다.
연결여부는 아래 계정에서 외부 서비스 전체 보기에서 확인 가능합니다.
https://accounts.kakao.com/weblogin/account/partner

그게 다른 것이었군요ㅠ

  1. 팀원의 팀멤버 등록: 내애플리케이션에서 등록
  2. 팀원의 앱연결: 서비스앱> 팀원아이디로 로그인> 나에게메시지보내기> kakao계정관리>외부서비스전체보기> 즉시 연결됨

한명의 팀원 uuid 확보 성공했습니다. 그런데 위 2)의 절차로 팀원을 앱연결 시키는 것이 맞나요?