본문으로 건너뛰기

메시지 수신 설정

푸시 메시지의 수신 설정을 변경합니다.

URL 확인

이 API는 service-api.playnanoo.com 도메인을 사용합니다.

API 정보

  • URL: https://service-api.playnanoo.com/push/v20220701/change
  • Method: PUT
  • 인증 필요: 예
DeviceInfo 상속

이 API의 Req 클래스는 DeviceInfo를 상속받습니다. DeviceInfo의 모든 속성이 자동으로 포함됩니다.

요청 파라미터

파라미터타입필수설명
receive_ynstring필수푸시 메시지 수신 여부 ("Y" 또는 "N")
receive_night_ynstring필수야간 푸시 메시지 수신 여부 ("Y" 또는 "N")
야간 푸시

야간 푸시는 오후 09시부터 다음날 오전 08시까지의 푸시 메시지를 의미합니다.

응답 데이터

Res 클래스

필드타입설명
Statusstring처리 결과 상태

Unity C# 구현

BaseResponse 클래스

모든 API 응답의 기본 클래스입니다.

public class BaseResponse
{
public string ErrorCode;
public string Message;
public string WithdrawalKey;
public string BlockKey;
}

필드 설명:

  • ErrorCode: 에러 코드
  • Message: 에러 메시지
  • WithdrawalKey: 탈퇴 유예 상태인 경우 복구에 필요한 키 (탈퇴 유예 중인 계정만 제공)
  • BlockKey: 차단된 계정인 경우 제공되는 키 (차단된 계정만 제공)

푸시 설정 변경 클래스

using System;
using System.Collections;
using UnityEngine.Networking;

public class PushChange
{
static string url = "https://service-api.playnanoo.com/push/v20220701/change";

[Serializable]
public class Req : DeviceInfo
{
public string receive_yn;
public string receive_night_yn;

public IEnumerator Send(
bool receiveYn,
bool receiveNightYn,
Action<Res> onSuccess,
Action<BaseResponse> onError)
{
this.receive_yn = receiveYn ? "Y" : "N";
this.receive_night_yn = receiveNightYn ? "Y" : "N";

// PUT 방식 호출
yield return HttpClient.Send<Req, Res>(
UnityWebRequest.kHttpVerbPUT,
url,
requireToken: true,
body: this,
onSuccess: onSuccess,
onError: onError
);
}
}

[Serializable]
public class Res : BaseResponse
{
public string Status;
}
}

사용 예제

푸시 알림 완전히 끄기

using PlayNANOO;

public class PlayNANOOExample : MonoBehaviour
{
void DisableAllPush()
{
PushChange.Req req = new PushChange.Req();

StartCoroutine(req.Send(
receiveYn: false,
receiveNightYn: false,
onSuccess: res =>
{
Debug.Log($"푸시 알림 비활성화 성공: {res.Status}");
},
onError: (error) =>
{
Debug.LogError($"푸시 설정 변경 실패: [{error.ErrorCode}] [{error.Message}]");
}
));
}
}

야간 푸시만 끄기

using PlayNANOO;

public class PlayNANOOExample : MonoBehaviour
{
void DisableNightPush()
{
PushChange.Req req = new PushChange.Req();

StartCoroutine(req.Send(
receiveYn: true,
receiveNightYn: false,
onSuccess: res =>
{
Debug.Log($"야간 푸시 비활성화 성공: {res.Status}");
},
onError: (error) =>
{
Debug.LogError($"푸시 설정 변경 실패: [{error.ErrorCode}] [{error.Message}]");
}
));
}
}

사용자 설정에 따라 변경

using PlayNANOO;

public class PushSettingsUI : MonoBehaviour
{
public Toggle pushToggle;
public Toggle nightPushToggle;

public void OnSettingsChanged()
{
PushChange.Req req = new PushChange.Req();

StartCoroutine(req.Send(
receiveYn: pushToggle.isOn,
receiveNightYn: nightPushToggle.isOn,
onSuccess: res =>
{
Debug.Log($"푸시 설정 변경 성공: {res.Status}");
ShowMessage("푸시 알림 설정이 변경되었습니다.");
},
onError: (error) =>
{
Debug.LogError($"푸시 설정 변경 실패: [{error.ErrorCode}] [{error.Message}]");
ShowMessage("설정 변경에 실패했습니다. 다시 시도해주세요.");
}
));
}

void ShowMessage(string message)
{
// UI 메시지 표시
Debug.Log(message);
}
}
실시간 설정 반영

이 API를 통해 변경된 설정은 즉시 서버에 반영되며, 다음 푸시 발송부터 적용됩니다.

토큰 유지

설정 변경은 토큰을 삭제하지 않고 수신 여부만 변경합니다. 토큰은 서버에 계속 유지됩니다.

사용자 경험

푸시 알림 설정 UI를 제공하여 사용자가 원하는 대로 알림을 제어할 수 있게 하는 것이 좋습니다.