Rest API 로 나에게 보내기 구현 시 파라메터 전송 질문(python)

안녕하세요,

REST API 와 python을 이용하여
카카오톡 나에게 보내기 서비스를 구현해보려고 하고 있습니다.

PHP 단에서 얻어온 authorization key를 python 쪽으로 전달하여
Access Token 및 Refresh Token은 정상적으로 받아 왔고
이에 대한 Test 로 프로필 얻어오기는 정상적으로 동작하는 것을 확인했습니다.

헌데 template id 및 Acess Token 외에 추가적인 파라메터가 필요한
나에게 보내기의 경우 정상적으로 동작하지 않고 있네요.

구헌하고자 했던 서비스의 경우 파라메터를 41개 받게 되있어서
파라메터 1개짜리 Test용 Template을 만들어서 Test해보니

{u’msg’: u’failed to validate. detail={params=missing parameters ([${test}]). }’, u’code’: -2}

위와 같은 message 가 돌아오는 것을오 보아 제가 parameter 전달을 잘못하고 있는 것 같습니다.

호출은 python의 request module 을 활용하고 있고 아래와 같은 형태로 request.post method를 통해
Parameter 전달을 시도하고 있습니다.

SendMeAPIURL = ‘https://kapi.kakao.com/v1/api/talk/memo/send?template_id={template id}’
SendMeHeader = {‘Authorization’ : ‘Bearer’ + {Access Token}}
SendArgs = {"${test}":“123”}

Res = requests.post(SendMeAPIURL, headers=SendMeHeader, data=SendArgs)

제 생각에는 SendArgs 쪽 설정이 문제일 것이라 생각되는데
이에 대해 조언 부탁드립니다.

또, 파라메터가 여러개일 경우에 대한 예시도 함께 조언해 주시면 감사하겠습니다.

감사합니다.

@fearorc

위의 에러를 보니 ${test} 인자가 누락되거나 정확히 넘어가지 않은것 같습니다.
그리고 template_id 파라미터도 Query String 아니고 POST로 넘기셔야 합니다.

아래는 여러 파라미터를 보내는 예제입니다.

${name}님, 안녕하세요. 
당신은 ${age}세이며, 건강 나이는 ${h_age}입니다. 
${desc}

메시지 템플릿 빌더에서 위와 같이 ${name}, ${age}, ${h_age}, ${desc} 인자를 지정했고, args 파라미터에 지정한 인자 모두를 채워서 보내셔야 합니다.

curl -v -X POST "https://kapi.kakao.com/v1/api/talk/memo/send" \ 
-H "Authorization: Bearer [ACCESS_TOKEN]" \
--data-urlencode "template_id=[TEMPLATE_ID]" \
--data-urlencode 'args={"${name}":"홍길동", "${age}": 100, "${h_age}": 50, "${desc}":"엄청 건강하시네요~ 축하드립니다."}' 

혹시 위의 내용에 대한

    SendMeAPIURL = 'https://kapi.kakao.com/v1/api/talk/memo/send'
    SendMeHeader = {'Authorization' : 'Bearer '+ {Access Token}}
    SendArgs = {"template_id":{template id}, "args":{"${name}":"11", "${age}": 22, "${h_age}": 33, "${desc}":"444444"}}

    Res = requests.post(SendMeAPIURL, headers=SendMeHeader, data=SendArgs)

리턴값이 같아 테스트를 해보았습니다.

같은 리턴 메시지가 나와서요…

조언 부탁 드립니다.

@dream9879
아래와 같이 고쳐서 테스트 보세요.
메시지 템플릿 v2 스펙으로 호출하는 것으로 고쳤습니다. (위에 질문은 v1이며, 현재는 deprecated 상태입니다)
인자 값을 보낼때는 "${name}"를 "name"으로 바꾸셔도 됩니다.

SendMeAPIURL = 'https://kapi.kakao.com/v2/api/talk/memo/send'
SendMeHeader = {'Authorization' : 'Bearer '+ {Access Token}}
SendArgs = {"template_id":{template id}, "template_args":{"${name}":"11", "${age}": 22, "${h_age}": 33, "${desc}":"444444"}}

Res = requests.post(SendMeAPIURL, headers=SendMeHeader, data=SendArgs)