토큰 발급받았는데 토큰 존재하지 않는다고 에러 뜹니다

카카오톡 메시지 나에게 보내기 레퍼런스 나와있는대로 잘 따라갔는데 계속 -401 에러 뜨면서
{“msg”:“this access token does not exist”,“code”:-401} 해당 에러가 발생합니다.
뭘 실수했길래 안되는지 감이 안잡혀 문의 올립니다. 언어는 파이썬입니다.

앱ID : 949167

인가코드받기 uri주소

카카오계정{내 고유 REST_API}&redirect_uri=https://localhost:8080/&response_type=code

##################

토큰 코드

import requests
import json

url = “https://kauth.kakao.com/oauth/token

headers = {‘Content-type’: ‘application/x-www-form-urlencoded;charset=utf-8’}

data = {
“grant_type” : ‘authorization_code’,
“client_id” : ‘{내 고유 REST_API}’,
“redirect_uri” : ‘https://localhost:8080/’,
“code” : ‘{인가받은 코드}’
}

response = requests.post(url, data=data)

tokens = response.json()

print(tokens)

####################################

메시지 호출 코드

URL = ‘https://kapi.kakao.com/v2/api/talk/memo/default/send
REST_API = ‘내 고유 REST_API’
ACCESS_TOKEN = ‘{위 인가코드로 발급받은 TOKEN}’
REFRESH_TOKEN = ‘{REFRESH_TOKEN}’

headers = {
‘Authorization’ : 'Bearer ’ + ‘{ACCESS_TOKEN}’,
}

contents = {
‘object_type’ : ‘text’,
‘text’ : ‘테스트 메시지입니다.’,
‘link’ : {
“web_url”: “https://www.google.com
}
}

data = {“template_object”: json.dumps(contents)}
response = requests.post(URL, headers=headers, data=data)

print(json.loads(response.text), ‘\n’)

발급받으신 토큰 기재 부탁드려요.

2개의 좋아요

안녕하세요, 가장 마지막으로 발급받았던 토큰은6HsWMdyc6FjVM74xM25SQPXiFaY7a8Cc5TlqrlcwCj11mgAAAYm7D7eh 입니다.
부디 도움 부탁드립니다 너무 답답합니다.

토큰 자체는 정상이나 해당 디벨로퍼스 앱 로그에 /v2/api/talk/memo/default/send 이력이 없는 것을 봐서는

헤더를 잘못 세팅하신 것 같습니다.
전송한 컨텐츠 타입 확인 부탁드려요.

호출하신 서버 IP 알려주시면 에러로그 추가로 찾아보겠습니다.

1개의 좋아요

레퍼런스를 그대로 참고해서 headers를 설정했는데 어떤 부분의 세팅이 잘못된 건지 모르겠습니다. 그리고 제가 초심자라서 호출서버 ip가 어디서 조회해야 하는지 잘 모르겠습니다. 일단 토큰 발급까지는 이상이 없었다는 설명으로 이해했습니다.

넵, 조금 부연 설명드리면.

API 호출에 토큰을 설정하면 카카오측에서는 수신을 받아 어떤 디벨로퍼스앱인지 판단합니다.

하지만, 해당 디벨로퍼스앱의 로그가 없는 것으로 볼때 헤더에 토큰을 정상적으로 세팅 못한 것으로 추정되고
카카오 API를 호출하는 서버의 IP를 알려주시면 IP 필터링하여 호출 내용을 확인해볼 수 있습니다.

IP 확인이 어려우시면 API를 호출하신 시분초까지 알려주시면 내용 확인해보겠습니다.

보통은 아래와 같은 컨텐츠 타입으로 헤더 설정하셔야하는데 Json 타입으로 잘못 설정하여 호출한경우 헤더가 정상적으로 전달 안되는 경우가 많습니다.

"Content-Type: application/x-www-form-urlencoded"
2개의 좋아요

자세한 답변 감사드립니다. 써주신 코드를 api 호출 코드 중 헤더 구문에 추가하여 돌려봤지만 결과는 동일했습니다.ㅠㅠ 방금 실행시간 확인 결과 18시 02분 39초에 실행했고 결과는 -401입니다.

앱id : 949167
엑세스토큰 : WyHZ86oAf6g1EXRTMZh3pDZzf0sM_tqEPz-bmRe9C*************

2분 39초에는 없고 가까운 시간 401 에러는 아래와 같습니다.

토큰이 변수 치환 안되고 {ACCESS_TOKEN} 그대로 전달된 것 같네요.

Aug 4, 2023 @ 18:02:18.034 <mark>/v2/api/talk/memo/default/send</mark> 401 {"code":-401,"msg":"this access token does not exist"} Bearer {ACCESS_TOKEN}
1개의 좋아요

아니…해결됐습니다 개발자님…
변수 활용도 못하면서 귀찮게 해드렸네요;
문제 해결에 도움 주시고 친절한 답변 정말 감사드립니다.
카카오에는 평가점수 이런 거 없나요? 만점 드리고싶은데요.
api 활용해서 좋은 아이디어 구현해보겠습니다 감사합니다.

1개의 좋아요