토큰 저장
푸시 발송을 위한 토큰을 저장합니다.
URL 확인
이 API는 service-api.playnanoo.com 도메인을 사용합니다.
API 정보
- URL:
https://service-api.playnanoo.com/push/v20220701/save - Method:
PUT - 인증 필요: 예
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| token | string | 필수 | 푸시 토큰 (FCM/APNS) |
| receive_yn | string | 필수 | 푸시 메시지 수신 여부 ("Y" 또는 "N") |
| receive_night_yn | string | 필수 | 야간 푸시 메시지 수신 여부 ("Y" 또는 "N") |
야간 푸시
야간 푸시는 오후 09시부터 다음날 오전 08시까지의 푸시 메시지를 의미합니다.
응답 데이터
| 필드 | 타입 | 설명 |
|---|---|---|
| Status | string | 처리 결과 상태 |
코드 예제
void UMyGame::SavePushToken(const FString& PushToken, bool bReceive, bool bReceiveNight)
{
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("token"), PushToken);
Body->SetStringField(TEXT("receive_yn"), bReceive ? TEXT("Y") : TEXT("N"));
Body->SetStringField(TEXT("receive_night_yn"), bReceiveNight ? TEXT("Y") : TEXT("N"));
// JSON 문자열 변환
FString JsonBody = FPlayNANOOHelper::ToJsonString(Body);
// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-api.playnanoo.com/push/v20220701/save"));
Request->SetVerb(TEXT("PUT"));
FPlayNANOOHelper::SetCommonHeaders(Request, true); // 인증 토큰 포함
Request->SetContentAsString(JsonBody);
Request->OnProcessRequestComplete().BindLambda(
[](FHttpRequestPtr Req, FHttpResponsePtr Res, bool bSuccess)
{
if (bSuccess && Res.IsValid())
{
TSharedPtr<FJsonObject> JsonObject;
TSharedRef<TJsonReader<>> Reader = TJsonReaderFactory<>::Create(Res->GetContentAsString());
if (FJsonSerializer::Deserialize(Reader, JsonObject))
{
FString Status = JsonObject->GetStringField(TEXT("Status"));
UE_LOG(LogTemp, Log, TEXT("푸시 토큰 저장 성공: %s"), *Status);
}
}
});
Request->ProcessRequest();
}
Firebase 설정 필요
Android에서 FCM을 사용하려면 Firebase 프로젝트 설정이 필요합니다.
APNS 설정 필요
iOS에서 APNS를 사용하려면 Apple Developer 계정에서 Push Notification 인증서 설정이 필요합니다.
수신 설정 관리
사용자 설정에 따라 receive_yn과 receive_night_yn 값을 동적으로 변경하여 푸시 수신 설정을 관리할 수 있습니다.