빠른 시작으로

사용자 연결하기 — 코드·QR·구독 링크

내 서비스의 사용자 한 명과 그 사람의 EosNoti 앱을 잇는 일입니다. 이 연결이 있어야 이미 쓰고 계신 사용자 아이디만으로 바로 보낼 수 있습니다.

연결이란 무엇인가

EosNoti는 토픽이 아니라 사람에게 보냅니다. 그래서 「내 서비스의 사용자 8821번」과 「그 사람 폰에 깔린 EosNoti 앱」을 한 번 묶어 둡니다. 묶는 열쇠는 external_id — 이미 쓰고 계신 내부 사용자 아이디를 그대로 쓰시면 됩니다. 매핑 테이블을 따로 만들 필요가 없습니다.

기기 등록도, 푸시 권한도 EosNoti 앱이 대신 처리합니다. 개발자가 APNs·FCM을 직접 다루는 일은 없습니다.

① 6자리 코드 — 기본 방법

화면에 6자리를 띄우고 사용자가 EosNoti 앱에 입력하면 연결됩니다. 코드는 10분짜리 1회용이라, 요청할 때마다 새로 발급하십시오. 발급한 쪽이 폴링으로 상태를 확인합니다.

6자리 코드 페어링 흐름 (정·역방향)내 서비스백엔드 발급 · 내 앱 표시/입력EosNoti 앱사용자 기기 · 코드 추가정방향AB7K9PX9Q3MR역방향바인딩 완료external_id ↔ 사용자 기기 · 이제 ext:<id> 로 그 사람에게 발송
API_KEY=<발급받은 api_key>

# 6자리 발급 — 내 사용자 아이디(external_id)를 실어 둔다
curl -s -X POST https://api.eosnoti.com/v1/pairing-codes \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"external_id":"user_8821"}'
# ← {"code":"AB7K9P","url":"https://www.eosnoti.com/s/AB7K9P","expires_at":"..."}

# 연결될 때까지 이 하나만 두드린다 (코드 입력이든 QR 스캔이든 같은 폴링)
curl -s https://api.eosnoti.com/v1/pairing-codes/AB7K9P \
  -H "Authorization: Bearer $API_KEY"
# ← {"status":"pending|redeemed|expired","subscription_id":...}

사용자가 EosNoti 앱에서 코드를 먼저 받아 내 서비스 화면에 붙여 넣는 흐름도 됩니다. 로그인한 웹 화면에 입력란 하나만 두면 되니, 화면에 코드를 띄우기 어려울 때 쓰십시오.

# [역방향] EosNoti 앱이 보여 준 코드를 사용자가 내 화면에 입력 → 서버가 redeem
curl -s -X POST https://api.eosnoti.com/v1/pairing-codes/X9Q3MR/redeem \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"external_id":"user_8821"}'
# ← {"subscription_id":"...","external_id":"user_8821"}
# 방향이 반대인 코드를 넣으면 409 wrong_direction, 만료·사용된 코드는 410 gone

② QR — 같은 코드를 스캔으로

발급 응답의 url을 QR로 그리면 폰 기본 카메라로 찍어도 앱이 열립니다. 앱이 없으면 설치 안내로 넘어갑니다. 코드를 손으로 옮겨 적는 것보다 실수가 적어, 6자리와 QR을 나란히 두는 것을 권합니다. 확인용 폴링은 둘 다 같은 것 하나면 됩니다.

subscribe-link 채널 구독 흐름 (링크 탭 · QR 스캔)내 서비스subscribe-link 발급url 전달 또는 QR 표시EosNoti 앱사용자 기기링크 탭 또는 QR 스캔링크 탭/s/<code>QR 스캔같은 코드 · external_id 내장바인딩 완료external_id ↔ 사용자 기기 · 이제 ext:<id> 로 그 사람에게 발송

③ 구독 링크 — 화면이 닫혀도 사는 것

메일이나 문자로 보내는 경우처럼 연결 안내가 그 화면보다 오래 살아야 할 때 씁니다. ttl은 초 단위로 기본 24시간, 최대 30일입니다. 다만 상태 조회 경로가 없어 폴링이 안 되니, 화면을 띄워 두고 기다리는 자리에는 6자리 코드를 쓰십시오.

curl -s -X POST https://api.eosnoti.com/v1/subscribe-links \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"external_id":"user_8821","ttl":86400}'   # ttl 초, 0/생략=24h
#                                                 상한 30일(2592000) — 초과·음수는 400
# ← {"url":".../s/<code>","code":"<code>","expires_at":"..."}
# url을 문자·메일로 그대로 보낸다. 탭하면 앱이 열리고(미설치면 설치 안내로 폴백)
# 기기 등록·구독·external_id 바인딩까지 앱이 알아서 끝낸다.

연결됐는지 조용히 확인하기

발송해 보지 않고도 확인할 수 있습니다. 쿼터를 쓰지 않고, 구독 중이든 아니든 200에 같은 스키마로 답합니다. 알림 설정 화면에 「연결됨 / 연결 안 됨」을 표시할 때 쓰십시오.

curl -s "https://api.eosnoti.com/v1/subscriptions/lookup?external_id=user_8821" \
  -H "Authorization: Bearer $API_KEY"
# ← {"subscribed":true,"device_count":2,"push_enabled":true,"platforms":["ios","android"]}
#   미구독이면 {"subscribed":false,"device_count":0,"push_enabled":false,"platforms":[]}
#   push_enabled=false 면 구독은 했는데 폰에서 알림을 꺼 둔 상태다

로그아웃할 때 연결 끊기

사용자가 로그아웃하거나 알림을 끄면 external_id로 해제하십시오. 그 사용자의 모든 기기에서 한 번에 풀리고, 이미 풀려 있어도 200에 cleared 0으로 답하므로 로그아웃마다 그냥 부르셔도 됩니다.

curl -X DELETE "https://api.eosnoti.com/v1/subscriptions/external?external_id=user_8821" \
  -H "Authorization: Bearer $API_KEY"
# ← {"status":"cleared","cleared":2}   이미 풀려 있어도 200 {"cleared":0}
구독 아이디로 해제하는 하위 경로도 있지만, 그 기기가 그 사이 다른 사용자에게 다시 연결됐다면 «그 사람»의 연결을 끊습니다. 확실한 경우가 아니면 external_id 쪽을 쓰십시오. DELETE /v1/subscriptions/{id}/external

사용자에게 보낼 안내가 필요합니까?

앱 설치·알림 허용·코드 입력까지 수신자가 해야 하는 일은 저희가 공개 페이지로 만들어 두었습니다. 직접 쓰지 마시고 이 링크를 그대로 보내십시오.

수신자용 안내 페이지 보기

다른 문서

붙여 보시겠습니까?

가입하면 애플리케이션과 API 키가 바로 발급됩니다. 첫 알림까지 5분이면 됩니다.

무료로 시작하기
사용자 연결하기 — 6자리 코드·QR·구독 링크 — EosNoti