카카오톡 친구목록 소멸

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
python
ID 1008878


안녕하세요. 친구목록 API에 관련하여 문의드릴 것이 있습니다.

이전 질문을 통해 24시간 내 API를 호출하지않으면 친구목록 소멸이 될 수 있다는 답변을 보고 주말 간 갱신을 위하여 일 2회 API를 호출하는 코드를 제작하여 가동하였는데 48시간 정도 지난 시점에서 친구목록이 초기화 된 것을 볼 수 있습니다. 원인이 무엇이고 해결법이 궁금합니다.

진행 절차는 아래와 같습니다.

  1. 카카오 로그인을 통해 친구 토큰 발급
  2. 코드를 통한 친구 API 호출 및 본인에게 친구목록 메세지 전송

import requests
import json
import schedule
import time
import requests

def refresh_token(app_key,tokens):
        url = "https://kauth.kakao.com/oauth/token"
        data = {
        "grant_type": "refresh_token",
        "client_id": app_key,
        "refresh_token": tokens['refresh_token'],
        'client_secret':'qhnwhcMYRZ7mlR6gFz9GMmcOWTMeRd7Z'
        }

        response = requests.post(url, data=data)
        print(response.status_code)
        # 갱신 된 토큰 내용 확인
        result = response.json()
        
        # 갱신 된 내용으로 파일 업데이트
        if 'access_token' in result:
            tokens['access_token'] = result['access_token']

        if 'refresh_token' in result:
            tokens['refresh_token'] = result['refresh_token']
        else:
            pass

        with open("kakao_code.json", "w") as fp:
            json.dump(tokens, fp)
def set_kakao():
    with open("kakao_code.json", "r") as fp:
        tokens = json.load(fp)

    refresh_token(app_key,tokens)

    friend_url = "https://kapi.kakao.com/v1/api/talk/friends"

    # # GET /v1/api/talk/friends HTTP/1.1
    # # Host: kapi.kakao.com
    # # Authorization: Bearer {ACCESS_TOKEN}

    headers={"Authorization" : "Bearer " + tokens["access_token"]}

    result = json.loads(requests.get(friend_url, headers=headers).text)
    friends_list = result.get("elements")
    print(friends_list)

    uuids = [friend.get("uuid") for friend in friends_list]
    
    url="https://kapi.kakao.com/v2/api/talk/memo/send"
    # # 본인에게 전송
    data={
        # 'receiver_uuids': json.dumps(uuids),  # UUID 배열을 JSON 문자열로 변환
        "template_id":104657,
        "template_args": json.dumps({"FW": str(friends_list)})
        
    }
    response = requests.post(url, headers=headers, data=data)
    print(response.status_code)

schedule.every().day.at("05:00").do(set_kakao)
schedule.every().day.at("17:40").do(set_kakao)

while True:
    schedule.run_pending()
    time.sleep(1)  # CPU 부하를 줄이기 위해 짧은 대기 시간을 추가합니다.


아래는 실행화면입니다.

안녕하세요.

사용자와 서비스간 최초 연결 후 24시간내 사용자 정보 가져오기와 같은 개인정보 조회 계열의 API가 사용되지 않는 경우 가입 미완료자로 판단하여 자동으로 서비스와 연결을 끊습니다.

이러한 API는 단, 한번만 호출 하면 되며 지속적으로 호출하실 필요는 없습니다.

자세한 내용은 아래 공지사항을 참고 부탁드립니다.

[공지] 가입 미완료자 연결 끊기 처리 안내 / [Notice] Unlink for users who have not completed a signup

그렇다면 한번 호출하면 친구 목록 내에 해당 사용자가 존재하는 기한이 있는 것인가요? 왜 48시간 이상 지나자 해당 친구가 조회되지 않는 것인지 궁금합니다.

친구 정보 제공 조건은 아래와 같습니다.

친구 정보 제공 조건
1. 친구가 앱과 연결된 상태일 것
2. 친구가 앱 연결 시 [카카오 서비스 내 친구 목록 제공] 동의 항목에 동의한 상태일 것
3. 친구가 숨김 또는 차단 친구가 아닐 것
4. 친구의 프로필 공개 설정이 공개 상태일 것
5. (친구 API 사용 권한이 없는 경우) 앱의 팀원일 것

이 중, 1번 조건을 만족하지 못하여 조회되지 않는 것인데요
조회 되었던 친구는 앱과 연결이 끊어진 상태 입니다.

2명의 친구에게 테스트한 결과, 동일한 방식,동일한 유형(전화번호 로그인)으로 로그인 했으며, [v]자동로그인 설정 후 별 다른 작업을 하지 않은 경우에 1명은 소멸되고 1명은 남아있었습니다.

초기 API 이후에 사용자(친구)가 별다른 작업을 하지 않음에도 자동으로 앱 연결이 끊어지는 경우에는 어떤 것이 있는 지 궁금합니다.

안녕하세요.

앞서 안내드린 친구 정보 제공 조건에 해당 되지 않는 경우 목록에 표시되지 않습니다.
표시되지 않는 사용자의 회원번호를 알면 정확한 원인을 확인할 수 있는데요
회원번호 전달 부탁드립니다.

소멸 사용자의 회원번호는
‘id’: 3385349441, ‘uuid’: ‘IxUiEysaKx0qBjcCOgk5CzkPOxcmFiYeJhEpcQ’
입니다.

API호출 시 동의목록(필수 및 선택) 전체 동의했으며, 로그인 직후 사용자 목록-카카오 친구 목록 불러오기로 정상 API 호출 완료하였습니다.

위 내용 참고 부탁드립니다.
해당 사용자는 24시간 후 자동 연결끊기 되었습니다.

추가적인 질문이 있습니다. 혹시 친구를 추가하고

  • 프로필

    • /v1/api/talk/profile
    • /v1/api/story/profile
    • /v2/user/me
  • 이메일, 전화번호, CI 정보등

    • /v2/user/me
  • 배송지

    • /v1/user/shipping_address
  • 친구

    • /v1/api/talk/friends
    • /v1/friends
  • 플친정보

    • /v1/api/talk/channels

중 해당되는 “모든 항목에 대한” API를 호출해야하나요?
친구 추가 후 (/v1/user/ids) 와 (/v1/api/talk/friends) 를 호출합니다.

사용자가 최초 카카오와 연결될 때 해당 API 중 하나는 최소 1번 호출되어야만 합니다.

그렇다면 최초 연결 시 친구 API( /v1/api/talk/friends) 를 호출하였고 정상적인 응답(200)을 받았음에도 24시간 이후 자동 연결끊기가 된다면 어떤 경우인건가요?

그런 경우는 서비스 버그라고 볼수 있습니다.
하지만 현재 그러한 버그가 발견된 바 없고

문의 주신 회원 번호의 경우 개인정보 조회 계열의 API가 사용된 바 없습니다.

자동 연결끊기는 연결된 사용자 별 발생합니다.
친구 목록에 표시된 사용자가 자동 연결끊기 대상에서 제외되지 않습니다.
사용자 별로 최초 로그인 후 최소 1회 이상 호출되어야만 합니다.