앱 사용자 액세스토큰 취득 관련 문의입니다

ID:953917입니다.


안녕하세요, 현재 rust로 카카오톡 api를 활용하는 프로젝트를 진행중입니다. 저희가 관련 api 사용이 처음이라 초보적인 질문일 수 있는 점 양해부탁드립니다 ㅠ

현재 링크에 로그인하여 authorization_code를 얻은 후, access token을 발급받고 친구목록에서 uuid를 검색해 해당 친구에게 메시지를 보내는 것까지는 구현하였습니다. 저희가 현재 필요한 것은 앱에 로그인한 후 필요한 등록 및 동의 절차를 모두 밟은 user1과 user2가 있다고 했을때, user1이 user2에게 일정한 형식의 메시지를 보낼 수 있도록 하는 것입니다. (코드를 실행하는 developer와 user1은 별개입니다.)

일단 발급된 uuid는 정해져 있고, developer의 컴퓨터에서 코드를 실행해보면서 user1의 액세스토큰과 user2의 uuid를 알고 있다면 user1에서 user2로 메시지를 보낼 수 있음은 알게 되었습니다. 그러나 프로그램을 실행할 때마다 user1의 액세스토큰을 user1에게 물어봐서 가져올 수는 없으므로, user1의 정보 제공 동의가 있을 때 user1의 액세스토큰을 developer가 직접 발급받을 수 있는지 알고 싶습니다. 아니면 일반적으로 카카오 서버를 경유해 user1이 user2에게 메시지를 보낼 수 있도록 하는 다른 방법이 있는지 궁금합니다.

알고 있는 것이 적다 보니 조금 횡설수설하게 되었는데, 예전 카카오톡 게임을 생각해봤을 때 친구에게 카카오톡 게임 초대 메시지(앱에서 발송)를 보낼 수 있었던 기억을 떠올렸습니다. 저희가 구현하고자 하는 것도 이것과 유사하다고 생각합니다.

안녕하세요.

메시지API 는 발신자의 접근 토큰을 사용합니다.
때문에 메시지 발송 시점에 해당 사용자의 유효한 접근 토큰을 보유하고 있어야만 합니다.

대부분의 경우 서비스에 사용자가 카카오 로그인 한 뒤 메시지를 발송합니다.
다라서 이미 접근토큰을 서비스가 갖고 있는 상태이고 이를 활용화면 되기에 메시지 발송에 별다른 문제가 발생하지 않습니다.

다만, 시스템에 의한 자동 발송 이거나 한번 카카오 로그인 한뒤 다시 하지 않아도 로그인 상태가 길게 유지되는 서비스라면 보유하고 있는 접근 토큰이 사용 시점에는 만료되어 있을 수 있습니다.

이 때는 리프래시 토큰을 사용, 접근 토큰을 갱신 받아 사용하실 수 있습니다.

감사합니다. 제가 잘 이해했는지 모르겠는데, 접근토큰을 활용하면 된다는건 발송자가 앱에 카카오 로그인한 후 발급받은 유효한 접근 토큰을 서비스 제공자가 바로 활용할 수 있다는 뜻이 맞을까요?

네, 맞습니다.
필요한 경우 사용자의 접근 토큰 및 리프래시 토큰을 서비스측 DB에 저장해 두고 활용할 수 있습니다.