본문으로 건너뛰기

기여 포인트 조회

길드 멤버의 기여 포인트를 기록합니다.

URL 확인

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

API 정보

  • URL: https://service-api.playnanoo.com/guild/v20230101/personal/point
  • Method: PUT
  • 인증 필요: 예 (Bearer Token)

요청 파라미터

파라미터타입필수설명
device_idstring필수디바이스 ID
table_codestring필수테이블 코드
pointnumber필수추가할 포인트 (양수/음수 모두 가능)
extra_datastring필수추가 데이터 (JSON 문자열 가능)

응답 데이터

포인트 정보

  • TotalPoint: 업데이트된 총 포인트
  • Point: 이번에 추가된 포인트
  • ErrorCode: 에러 코드 (성공 시 빈 문자열)
  • Message: 응답 메시지

코드 예제

void UMyGame::AddGuildPoint(const FString& DeviceId, const FString& TableCode, int32 Point, const FString& ExtraData)
{
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("device_id"), DeviceId);
Body->SetStringField(TEXT("table_code"), TableCode);
Body->SetNumberField(TEXT("point"), Point);
if (!ExtraData.IsEmpty())
{
Body->SetStringField(TEXT("extra_data"), ExtraData);
}

// JSON 문자열 변환
FString JsonBody = FPlayNANOOHelper::ToJsonString(Body);

// HTTP 요청
TSharedRef<IHttpRequest> Request = FHttpModule::Get().CreateRequest();
Request->SetURL(TEXT("https://service-api.playnanoo.com/guild/v20230101/personal/point"));
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))
{
int32 TotalPoint = JsonObject->GetIntegerField(TEXT("TotalPoint"));
int32 AddedPoint = JsonObject->GetIntegerField(TEXT("Point"));

UE_LOG(LogTemp, Log, TEXT("포인트 추가 성공!"));
UE_LOG(LogTemp, Log, TEXT("Added Point: %d"), AddedPoint);
UE_LOG(LogTemp, Log, TEXT("Total Point: %d"), TotalPoint);
}
}
});

Request->ProcessRequest();
}
인증 필요

이 API는 Bearer 토큰 인증이 필요합니다. 먼저 로그인하여 액세스 토큰을 발급받아야 합니다.

포인트 값
  • 양수: 포인트를 추가합니다 (예: 100, 50)
  • 음수: 포인트를 차감합니다 (예: -50, -100)
  • 0: 현재 포인트를 조회만 합니다 (변경 없음)
포인트 범위

포인트 값에 제한이 있을 수 있습니다. 지나치게 큰 값이나 음수 차감 시 총 포인트가 음수가 되지 않도록 주의하세요.

extra_data 활용

extra_data 파라미터를 통해 포인트 획득/차감의 상세 정보를 기록할 수 있습니다:

  • 활동 유형 (퀘스트, 레이드, 기부 등)
  • 참조 ID (퀘스트 ID, 이벤트 ID 등)
  • 추가 메타데이터

JSON 문자열 형태로 전달하면 나중에 로그 분석이 용이합니다.