公会 创建
公会创建。
URL确认
此API使用 service-api.playnanoo.com 域名。
API信息
- URL:
https://service-api.playnanoo.com/guild/v20230101/create - Method:
PUT - 需要认证: 是
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| table_code | string | 必填 | 表 代码 |
| name | string | 必填 | 公会 名称 |
| member_limit | int | 必填 | 成员限制数 |
| member_point_type | string | 必填 | 成员 积分 类型 (keep: 积分保持, delete: 积分扣减) |
| auto_join | string | 必填 | 自动 加入 与否 (Y/N) |
| extra_data | string | 必填 | 添加 数据 |
PlayerInfo继承
此API的Req结构体包含PlayerInfo的属性。
响应数据
Res类
| 字段 | 类型 | 说明 |
|---|---|---|
| Uid | string | 公会 唯一 ID |
| Name | string | 公会 名称 |
代码示例
void UMyGame::CreateGuild(const FString& TableCode, const FString& GuildName, int32 MemberLimit, const FString& MemberPointType, bool bAutoJoin, const FString& ExtraData)
{
// 플레이어 정보가 포함된 요청 바디 생성
TSharedPtr<FJsonObject> Body = FPlayNANOOHelper::CreateRequestBody();
Body->SetStringField(TEXT("table_code"), TableCode);
Body->SetStringField(TEXT("name"), GuildName);
Body->SetNumberField(TEXT("member_limit"), MemberLimit);
Body->SetStringField(TEXT("member_point_type"), MemberPointType);
Body->SetStringField(TEXT("auto_join"), bAutoJoin ? TEXT("Y") : TEXT("N"));
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/create"));
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 Uid = JsonObject->GetStringField(TEXT("Uid"));
FString Name = JsonObject->GetStringField(TEXT("Name"));
UE_LOG(LogTemp, Log, TEXT("길드 생성 성공!"));
UE_LOG(LogTemp, Log, TEXT("Guild UID: %s"), *Uid);
UE_LOG(LogTemp, Log, TEXT("Guild Name: %s"), *Name);
}
}
});
Request->ProcessRequest();
}
需要认证
此API需要Bearer Token认证。需要先登录获取访问Token。
积分类型选项
member_point_type参数决定公会成员退出时积分的处理方式:
- "keep": 积分保持 - 成员退出后公会的总积分保持
- "delete": 积分扣减 - 成员退出时该成员的积分从公会中扣减
自动加入选项
auto_join参数决定公会加入请求的处理方式:
- "Y": 加入请求时自动批准
- "N": 公会会长或管理员需要手动批准加入请求