콘텐츠로 이동

토큰 설정 변경

등록한 디바이스 토큰의 언어와 수신 동의를 변경하거나, 토큰에 연결된 사용자 식별자를 해제합니다. 세 메서드 모두 요청 본문의 토큰 값으로 대상 토큰을 식별하며, 요청은 접수(202) 후 서버에서 비동기로 처리됩니다.

Note
  • 토큰 설정 변경은 로그인된 세션을 사용합니다. 호출 전에 로그인을 먼저 완료해야 합니다.
  • Token에는 토큰 등록 시 사용한 것과 같은 디바이스 토큰 값을 전달합니다.

토큰 언어 변경

Method

public Task PatchTokenLanguageAsync();


디바이스 토큰의 언어 코드를 변경합니다. 변경한 언어 코드는 알림 메시지의 언어 현지화에 사용됩니다. 사용자가 앱에서 언어 설정을 바꿨을 때 호출하세요.


호출 파라미터

구분 타입 변수명 설명
입력 (Input) PatchTokenLanguageRequest request 변경 대상 토큰과 적용할 언어 코드를 담는 요청 객체입니다.
입력 (Input) ApiCallContext context (선택) 호출 단위 설정 객체입니다. 생략하면 기본값이 사용됩니다.

PatchTokenLanguageRequest

변수명 타입 필수 여부 설명
Token string Required 등록 시 사용한 디바이스 토큰 값입니다.
Language LanguageCode Required 적용할 언어 코드입니다. enum 멤버로 지정합니다(예: LanguageCode.En).


호출 예시

using Hive.Axyl.Push;
using Hive.Axyl.Core;

IPushService push = HiveCore.Resolve<IPushService>();

PushPatchTokenLanguageResult result = await push.PatchTokenLanguageAsync(
    new PatchTokenLanguageRequest {
        Token    = fcmToken,
        Language = LanguageCode.En,
    });

switch (result)
{
    case PushPatchTokenLanguageResult.Success:
        // 변경 요청 접수 완료(202). 서버가 비동기로 처리합니다.
        break;

    case PushPatchTokenLanguageResult.ResourceNotInScope:
        // 요청한 App ID 또는 리소스를 현재 프로젝트 범위에서 사용할 수 없습니다.
        break;

    case PushPatchTokenLanguageResult.InvalidSubject:
        // 로그인 세션의 사용자 식별자를 사용할 수 없습니다.
        break;

    // 공통 실패 처리 — 자세한 에러 모델은 [에러 처리](PLACEHOLDER_에러처리_링크) 참고
    case PushPatchTokenLanguageResult.Failure failure:
        HiveError err = failure.Problem;
        Debug.LogError($"[{err.Code}] {err.Message} (trace: {err.TraceId})");
        break;

    // 안전망: 알 수 없는 신규 결과(UnknownOutcome)
    default:
        Debug.LogWarning($"처리되지 않은 결과: {result.GetType().Name}");
        break;
}


응답 상태

반환 객체 PushPatchTokenLanguageResult는 아래 케이스로 분기됩니다. 성공 시 별도의 응답 데이터는 없습니다.

응답 케이스 설명 앱 클라이언트 대응
Success 변경 요청이 접수되었습니다(202). 서버가 비동기로 처리합니다. 변경 완료로 처리
ResourceNotInScope 요청한 App ID 또는 리소스를 현재 프로젝트 범위에서 사용할 수 없습니다. 프로젝트와 App ID 설정 확인
InvalidSubject 로그인 세션에서 사용자 식별자를 확인할 수 없습니다. 로그인 상태 확인 후 재시도
Failure 네트워크, 서버 오류 또는 공통 실패 응답입니다. 요청 값 검증 오류는 Problem(HiveError)의 ExternalCode에 invalid_parameter, missing_field, bad_request 등으로 전달됩니다. ExternalCode 확인 후 요청 값 수정 또는 재시도

수신 동의 변경

Method

public Task PatchTokenAgreementAsync();


디바이스 토큰의 수신 동의 설정을 변경합니다. 변경할 항목만 보내는 방식이 아니라 세 항목 값 전체를 보내 통째로 교체하므로, 변경하지 않는 항목도 현재 값으로 채워 전달해야 합니다. 사용자가 앱의 알림 설정을 바꿨을 때 호출하세요.


호출 파라미터

구분 타입 변수명 설명
입력 (Input) PatchTokenAgreementRequest request 변경 대상 토큰과 적용할 수신 동의 전체 값을 담는 요청 객체입니다.
입력 (Input) ApiCallContext context (선택) 호출 단위 설정 객체입니다. 생략하면 기본값이 사용됩니다.

PatchTokenAgreementRequest

변수명 타입 필수 여부 설명
Token string Required 등록 시 사용한 디바이스 토큰 값입니다.
Agreement Agreement Required 적용할 수신 동의 설정입니다. 세 항목 값을 모두 채워 전달합니다.

Agreement

변수명 타입 필수 여부 설명
Info bool Required 정보성 알림 수신 동의입니다.
Advertise bool Required 광고성 알림 수신 동의입니다.
Night bool Required 야간 광고성 알림 수신 동의입니다. Advertise가 false이면 true로 설정할 수 없습니다.


호출 예시

using Hive.Axyl.Push;
using Hive.Axyl.Core;

IPushService push = HiveCore.Resolve<IPushService>();

PushPatchTokenAgreementResult result = await push.PatchTokenAgreementAsync(
    new PatchTokenAgreementRequest {
        Token     = fcmToken,
        Agreement = new Agreement {   // 변경하지 않는 항목도 현재 값으로 채웁니다.
            Info      = true,
            Advertise = true,
            Night     = false,
        },
    });

switch (result)
{
    case PushPatchTokenAgreementResult.Success:
        // 변경 요청 접수 완료(202). 서버가 비동기로 처리합니다.
        break;

    case PushPatchTokenAgreementResult.ResourceNotInScope:
        // 요청한 App ID 또는 리소스를 현재 프로젝트 범위에서 사용할 수 없습니다.
        break;

    case PushPatchTokenAgreementResult.InvalidSubject:
        // 로그인 세션의 사용자 식별자를 사용할 수 없습니다.
        break;

    // 공통 실패 처리 — 자세한 에러 모델은 [에러 처리](PLACEHOLDER_에러처리_링크) 참고
    case PushPatchTokenAgreementResult.Failure failure:
        HiveError err = failure.Problem;
        Debug.LogError($"[{err.Code}] {err.Message} (trace: {err.TraceId})");
        break;

    // 안전망: 알 수 없는 신규 결과(UnknownOutcome)
    default:
        Debug.LogWarning($"처리되지 않은 결과: {result.GetType().Name}");
        break;
}


응답 상태

반환 객체 PushPatchTokenAgreementResult는 아래 케이스로 분기됩니다. 성공 시 별도의 응답 데이터는 없습니다.

응답 케이스 설명 앱 클라이언트 대응
Success 변경 요청이 접수되었습니다(202). 서버가 비동기로 처리합니다. 변경 완료로 처리
ResourceNotInScope 요청한 App ID 또는 리소스를 현재 프로젝트 범위에서 사용할 수 없습니다. 프로젝트와 App ID 설정 확인
InvalidSubject 로그인 세션에서 사용자 식별자를 확인할 수 없습니다. 로그인 상태 확인 후 재시도
Failure 네트워크, 서버 오류 또는 공통 실패 응답입니다. 요청 값 검증 오류는 Problem(HiveError)의 ExternalCode에 invalid_parameter, missing_field, bad_request 등으로 전달됩니다. ExternalCode 확인 후 요청 값 수정 또는 재시도

토큰 식별자 연결 해제

Method

public Task DetachTokenIdentifierAsync();


토큰에 연결된 사용자 식별자(Player ID)만 해제합니다. 토큰 데이터 자체는 삭제하지 않으므로, 해제 후에도 디바이스는 사용자 대상이 아닌 알림(예: 전체 발송)을 계속 받을 수 있습니다. 로그아웃이나 계정 전환으로 현재 사용자와 디바이스의 연결을 끊어야 할 때 호출하세요.


호출 파라미터

구분 타입 변수명 설명
입력 (Input) DetachTokenIdentifierRequest request 연결을 해제할 대상 토큰을 담는 요청 객체입니다.
입력 (Input) ApiCallContext context (선택) 호출 단위 설정 객체입니다. 생략하면 기본값이 사용됩니다.

DetachTokenIdentifierRequest

변수명 타입 필수 여부 설명
Token string Required 등록 시 사용한 디바이스 토큰 값입니다.


호출 예시

using Hive.Axyl.Push;
using Hive.Axyl.Core;

IPushService push = HiveCore.Resolve<IPushService>();

PushDetachTokenIdentifierResult result = await push.DetachTokenIdentifierAsync(
    new DetachTokenIdentifierRequest {
        Token = fcmToken,
    });

switch (result)
{
    case PushDetachTokenIdentifierResult.Success:
        // 해제 요청 접수 완료(202). 서버가 비동기로 처리합니다.
        break;

    case PushDetachTokenIdentifierResult.ResourceNotInScope:
        // 요청한 App ID 또는 리소스를 현재 프로젝트 범위에서 사용할 수 없습니다.
        break;

    case PushDetachTokenIdentifierResult.InvalidSubject:
        // 로그인 세션의 사용자 식별자를 사용할 수 없습니다.
        break;

    // 공통 실패 처리 — 자세한 에러 모델은 [에러 처리](PLACEHOLDER_에러처리_링크) 참고
    case PushDetachTokenIdentifierResult.Failure failure:
        HiveError err = failure.Problem;
        Debug.LogError($"[{err.Code}] {err.Message} (trace: {err.TraceId})");
        break;

    // 안전망: 알 수 없는 신규 결과(UnknownOutcome)
    default:
        Debug.LogWarning($"처리되지 않은 결과: {result.GetType().Name}");
        break;
}


응답 상태

반환 객체 PushDetachTokenIdentifierResult는 아래 케이스로 분기됩니다. 성공 시 별도의 응답 데이터는 없습니다.

응답 케이스 설명 앱 클라이언트 대응
Success 해제 요청이 접수되었습니다(202). 서버가 비동기로 처리합니다. 해제 완료로 처리
ResourceNotInScope 요청한 App ID 또는 리소스를 현재 프로젝트 범위에서 사용할 수 없습니다. 프로젝트와 App ID 설정 확인
InvalidSubject 로그인 세션에서 사용자 식별자를 확인할 수 없습니다. 로그인 상태 확인 후 재시도
Failure 네트워크, 서버 오류 또는 공통 실패 응답입니다. 요청 값 검증 오류는 Problem(HiveError)의 ExternalCode에 invalid_parameter, missing_field, bad_request 등으로 전달됩니다. ExternalCode 확인 후 요청 값 수정 또는 재시도

연관 문서

본 문서의 내용과 관련하여 참조하는 문서는 아래와 같습니다.