이 페이지에서 설명하는 기능을 사용하려면 푸시 알림이 포함된 요금제가 필요해요.
앱 사용자 그룹에 푸시 알림을 보내는 기본적인 방식은 다음과 같아요:
- 사용자 John이 앱을 열어요(이 예시에서는 쇼핑 앱이라고 가정할게요).
- John이 타겟 그룹에 포함되는 행동을 해요. 예를 들어 주방용품 할인 알림을 구독하는 버튼을 누를 수 있어요. 또는 앱의 주방용품 섹션을 둘러보기만 해도 John이 주방용품에 관심이 있다는 의미일 수 있어요.
- 웹사이트에서 John이 구독하도록 할 주제의 이름(예: "kitchen")과 함께 JavaScript 함수 "setNotificationTopicSubscriptionStatus"를 호출해요.
- 나중에 John과 이 주제를 구독한 다른 모든 사용자에게 알림을 보낼 수 있어요. 예를 들어 주방용품 할인 코드가 있다면 "kitchen" 주제를 구독한 모든 사용자에게 할인 소식을 알리는 알림을 보낼 수 있어요.
사용 가능한 JavaScript 함수
다음의
executeWhenAppReady() 함수를 확인해 보세요. 앱 도우미 스크립트예요.. 이 함수는 앱이 준비되기 전이나 웹사이트가 일반 브라우저에서 로드되었을 때 웹사이트에서 앱과 상호작용을 시도하지 않도록 해줘요(ReferenceError, 함수가 정의되지 않음). 앱 인스턴스가 푸시 알림 주제를 구독하도록 하려면 새로운 구독 상태(true = 구독, false = 구독 취소)와 원하는 주제 이름을 사용하여 setNotificationTopicSubscriptionStatus 함수를 호출하기만 하면 돼요.
<script>
try {
await setNotificationTopicSubscriptionStatus(true, "mytopic");
}
catch (e) {
// Can occur if:
// - you passed an invalid topic name.
// - you didn't pass all necessary parameters to setNotificationTopicSubscriptionStatus().
// - the app couldn't subscribe to the topic, for example because of connection issues. Should be very unlikely.
// - the app couldn't connect to the native code. Should be very unlikely.
// - push notifications are not included in your current plan
console.log(e);
}
</script>
유의할 사항:
- 주제는 다음 정규 표현식과 일치해야 해요:
[a-zA-Z0-9-_.~%]{1,850} - 하나의 앱 인스턴스(즉, 하나의 기기/사용자)는 최대 2,000개의 주제를 구독할 수 있어요.
- 가능성은 낮지만 구독에 실패할 수 있으므로 잠재적인 오류를 반드시 처리하세요.
나중에 앱 인스턴스가 구독 중인 주제 목록을 가져오고 싶을 수도 있어요. 반환 값은 문자열 목록이에요.
<script>
try {
var topics = (await getSubscribedNotificationTopics())["topics"];
}
catch (e) {
// Can occur if:
// - the app couldn't connect to the native code. Should be very unlikely.
// - push notifications are not included in your current plan
console.log(e);
}
</script>
더 완전한 코드 예시도 확인해 보세요. 다음은 WordPress 웹사이트에서 현재 페이지의 카테고리를 사용자가 구독하거나 구독 취소할 수 있게 하는 버튼의 코드예요.
스크린샷
앱 설정에는 사용자가 알림 주제 구독을 취소할 수 있는 기능도 있어요.


API 엔드포인트 참고 자료
이제 사용자가 주제를 구독했으므로 API를 통해 해당 주제로 알림을 보낼 수 있어요.
다음에서 앱 전용 API 키를 받으세요. 앱 대시보드예요.
API 키를 URL의 쿼리와 JSON 형식의 요청 본문으로 전송하세요.