GameTalk SDK for Unity 환경 및 사용 방법을 설명합니다.
[주의]
2019년 8월 1일부터 Google Play에 게시되는 신규 앱에서는 64비트 아키텍처를 지원해야 합니다. Google Play 정책 및 64비트 지원 Unity 버전 확인
선택한 플랫폼에서 지원하지 않는 GameTalk API를 호출하면 아래와 같은 오류가 콜백으로 반환되며 콜백이 없는 경우에는 Warning 로그가 출력됩니다.
API별 지원하는 플랫폼은 아래와 같은 아이콘으로 구분합니다.
■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
[주의]
- GameTalk 문의 지원이 필요한 경우에는 반드시 디버그 모드를 활성화한 후, 로그를 함께 전달해야 합니다.
- 게임을 릴리스할 때는 반드시 소스 코드에서 SetDebugMode 호출을 제거하거나 파라미터를 false로 바꿔서 빌드하십시오.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void SetDebugMode(bool isDebugMode)
매개변수
Parameter | 필수 | 설명 |
---|---|---|
isDebugMode | O | 디버그 모드 활성화 여부 |
Example
public void SetDebugModeExample()
{
GameTalk.SetDebugMode(true);
}
GameTalkError를 사용하여 API 성공 여부를 확인합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static bool IsSucceeded(GameTalkError error)
매개변수
Parameter | 필수 | 설명 |
---|---|---|
error | O | GameTalkError 객체 |
Example
public void IsSucceededExample(GameTalkError error)
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("succeeded.");
}
else
{
Debug.Log("failed.");
}
}
GameTalk SDK를 초기화합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void Initialize(
GameTalkParams.Config config,
GameTalkCallback.GameTalkDelegate<GameTalkData.ServiceInfo> callback)
매개변수
GameTalkParams.Config | 필수 | 설명 |
---|---|---|
appKey | O | 콘솔에서 GameTalk 프로젝트 활성화 시 자동 생성되는 앱키(Appkey) |
languageCode | O | 콘솔에 등록된 다국어 번역 대상 코드 중 기준이 되는 언어 코드 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.ServiceInfo | 설명 |
---|---|
maxMessageLength | 콘솔에 등록된 최대 메시지 길이 |
gameTalkState | GameTalk 상태(GameTalkState.cs 참조) - ACTIVATED: 활성화 - DEACTIVATED: 비활성화 - DELETED: 삭제 |
Example
public void InitializeExample()
{
var param = new GameTalkParams.Config
{
appKey = "[GAMETALK_APP_KEY]",
languageCode = LanguageCode.Korean
};
GameTalk.Initialize(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("Initialize succeeded. data:{0}", data));
// 초기화가 성공하면 AddEvent API를 이용하여 이벤트를 수신할 핸들러를 등록해야 합니다.
GameTalk.AddEvent((eventData, eventError) =>
{
});
}
else
{
Debug.Log(string.Format("Initialize failed. error:{0}", error));
}
});
}
GameTalk SDK의 초기화 여부를 확인합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static bool IsInitialized()
Example
public void IsInitializedExample()
{
if (GameTalk.IsInitialized() is true)
{
Debug.Log("Initialized.");
}
else
{
Debug.Log("Not initialized.");
}
}
서버 이벤트를 수신할 핸들러를 등록합니다.
[주의]
MappingUserInfo API를 호출하기 전에 호출되어야 합니다. 이후에 호출되면, 이벤트로 수신되는 메시지가 누락될 수 있습니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void AddEvent(GameTalkCallback.GameTalkDelegate<GameTalkData.AddEvent> eventHandler)
매개변수
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
이벤트 데이터 | |
error | 오류 객체 |
이벤트 데이터
GameTalkData.AddEvent | 설명 |
---|---|
type | 이벤트 타입(GameTalkEventType.cs 참조) - CHANGE_NETWORK_STATE: 네트워크가 중단되거나, 재연결되었을 때 이벤트를 수신 - PUSH_MESSAGE: 구독 중인 오픈 채널에 새로운 메시지가 수신되면 호출 - EventDataParser의 GetPushMessageData API를 사용하여 data를 객체화하여 사용 - PUSH_TO_ALL_USERS: 전체 발송 알림 메시지가 수신되면 호출 - EventDataParser의 GetPushToAllUsersData API를 사용하여 data를 객체화하여 사용 - PUSH_DELETE_USER: GameTalk을 이용 중인 사용자의 채널 구독 정보를 콘솔 및 server API를 통하여 해제할 경우 호출 - 이벤트가 수신되면 게임 로직 처리 후 GameTalk.DeleteUserInfo API를 호출하여 서버와 상태 값을 동기화해야 합니다.- 사용자는 모든 채널의 구독 상태가 해지되므로 채널을 다시 구독하기 전까지는 모든 메시지 송수신이 불가능합니다. - EventDataParser의 GetPushDeleteUserData API를 사용하여 data를 객체화하여 사용 |
data | 이벤트 타입에 따라 달라지는 데이터(아래 세부 데이터 참조) |
data(CHANGE_NETWORK_STATE) | 네트워크 상태(NetworkState.cs 참조) - DISCONNECTED: 네트워크 연결 해제 - RECONNECTED: 네트워크 재연결 - 네트워크 문제로 수신하지 못한 메시지를 조회해야 합니다(Example 참조). |
data(PUSH_MESSAGE) | - channelId: 채널 생성 시 부여된 고유 ID - channelType: 채널 타입(ChannelType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - messageId: 메시지 아이디 - messageType: 메시지 타입(MessageType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - ADMIN: 운영자 - ANNOUNCEMENT: 알림 메시지 - SYSTEM: 시스템 - contentType: 메시지 데이터 타입(MessageContentType.cs 참조) - TEXT: 텍스트 - senderType: 송신자 타입(MessageSenderType.cs 참조) - USER: 사용자 - ADMIN: 운영자 - ANNOUNCEMENT: 운영자 - SYSTEM: 시스템 - senderId: 송신자 아이디 - senderNickname: 송신자 닉네임 - languageCode: 메시지 언어 코드(LanguageCode.cs 참조) - content: 메시지 - state: 메시지 상태(MessageState.cs 참조) - NORMAL: 정상 메시지 - FILTER: 비속어로 인해 필터링 된 메시지 - deleted: 메시지 삭제 여부 - regDate: 메시지 전송 일시 |
data(PUSH_TO_ALL_USERS) | PUSH_MESSAGE 이벤트 데이터에서 channelId, channelType만 없고, 모두 동일 |
data(PUSH_DELETE_USER) | - userId: 사용자 ID |
Example
public void AddEventExample()
{
GameTalk.AddEvent((eventData, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
switch (eventData.type)
{
case GameTalkEventType.CHANGE_NETWORK_STATE:
{
// 네트워크 상태가 변경되면 호출됩니다.
// NetworkState.DISCONNECTED or NetworkState.RECONNECTED
Debug.Log(string.Format("Change networkState:{0}", eventData.data));
if (eventData.data.Equals(NetworkState.RECONNECTED) is true)
{
// 네트워크 문제로 수신하지 못한 메시지를 조회합니다.
CheckUnreceivedMessages(lastReceivedMessageId);
}
break;
}
case GameTalkEventType.PUSH_MESSAGE:
{
// It is called when a new message is received on the subscribed open channel
// Use EventDataParser's GetEventData<GameTalkData.Message.PushMessage> API to objectify and use data.
Debug.Log(string.Format(
"An event has been received. data:{0}",
EventDataParser.GetEventData<GameTalkData.Message.PushMessage>(eventData.data)));
break;
}
case GameTalkEventType.PUSH_TO_ALL_USERS:
{
// 전체 발송 알림 메시지가 수신되면 호출
// Use EventDataParser's GetEventData<GameTalkData.Message.PushToAllUsers> API to objectify and use data
Debug.Log(string.Format(
"An event has been received. data:{0}",
EventDataParser.GetEventData<GameTalkData.Message.PushToAllUsers>(eventData.data)));
break;
}
case GameTalkEventType.PUSH_DELETE_USER:
{
// GameTalk을 이용 중인 사용자의 채널 구독 정보를 콘솔 및 server API를 통하여 해제할 경우 호출
// Use EventDataParser's GetEventData<GameTalkData.PushDeleteUser> API to objectify and use data
Debug.Log(string.Format(
"PUSH_DELETE_USER event was received. data:{0}",
EventDataParser.GetEventData<GameTalkData.PushDeleteUser>(eventData.data)));
// 서버와 클라이언트 상태를 동기화하려면 DeleteUserInfo API를 호출해야 합니다.
DeleteUserInfo();
break;
}
}
}
else
{
Debug.Log(string.Format("error:{0}", error));
}
});
}
private void CheckUnreceivedMessages(long lastReceivedMessageId)
{
var param = new GameTalkParams.Message.GetMessage
{
// 마지막으로 수신한 메시지의 ID입니다.
messageId = lastReceivedMessageId,
nextCount = 50,
channelId = "{CURRENT_CHANNEL_ID}"
};
GameTalk.Message.GetMessage(param, (message, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
if (message.nextMessageList.Count == 0)
{
// 수신하지 못한 메시지가 없습니다.
//------------------------------
// 게임 처리 로직
//------------------------------
// PUSH_MESSAGE 이벤트로 수신된 메시지를 UI에 표시합니다.
}
else
{
// 수신하지 못한 메시지가 있습니다.
// PUSH_MESSAGE 이벤트로 수신된 메시지를 UI에 표시할 경우에는 메시지의 순서가 맞지 않는 문제가 발생할 수 있으므로,
// 해당 처리가 끝날 때까지 수신된 메시지를 보관합니다.
//------------------------------
// 게임 처리 로직
//------------------------------
// 1. PUSH_MESSAGE 이벤트로 수신된 메시지를 보관합니다(UI 표시 X).
// 2. 게임 UI에 GetMessage API로 조회된 메시지들을 표시합니다.
// 3. 수신하지 못한 메시지가 없을 때까지 CheckUnreceivedMessages 메서드를 재귀 호출합니다.
}
}
else
{
Debug.Log(string.Format("GetMessage failed. error:{0}", error));
}
});
}
private void DeleteUserInfo()
{
GameTalk.DeleteUserInfo((error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("DeleteUserInfo succeeded.");
}
else
{
Debug.Log(string.Format("DeleteUserInfo failed. error:{0}", error));
}
});
}
사용자 인증 정보를 GameTalk으로 매핑합니다. 매핑된 정보는 GameTalk 사용자 식별자로 사용됩니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void MappingUserInfo(
GameTalkParams.MappingUserInfo param,
GameTalkCallback.GameTalkDelegate<GameTalkData.MappingUserInfo> callback)
매개변수
GameTalkParams.MappingUserInfo | 필수 | 설명 |
---|---|---|
idPType | X | IdP (identity provider) 타입(IdPType.cs 참조) - GAMEBASE: Gamebase Gamebase를 사용 중이라면 IdPType.GAMEBASE를 입력 |
userId | O | 사용자 ID Gamebase를 사용 중이라면 Gamebase User ID를 입력 |
token | X | 사용자 인증 토큰 Gamebase 인증을 사용 중이라면 Gamebase 인증 토큰을 입력(토큰이 생략되면 서버에서 오류가 반환) Gamebase 인증을 사용하지 않는다면 생략 가능 |
nickname | X | 사용자 별명 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.MappingUserInfo | 설명 |
---|---|
user | 사용자 정보 - userId: 사용자 ID - nickname: 사용자 별명 - valid: 사용자 상태 - true: 정상 - false: 삭제된 유저 - regDate: 사용자 가입 일시 - languageCode: 사용자 언어 코드 - lastLoginDate: 마지막 로그인 일시 |
Example
public void MappingUserInfoExample()
{
var param = new GameTalkParams.MappingUserInfo
{
idPType = IdPType.GAMEBASE,
token = "[TOKEN]",
userId = "[USER_ID]",
nickname = "[NICKNAME]"
};
GameTalk.MappingUserInfo(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("MappingUserInfo succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("MappingUserInfo failed. error:{0}", error));
}
});
}
사용자 인증 정보가 GameTalk으로 매핑되어 있는지 확인합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static bool IsMappedUserInfo()
Example
public void IsMappedUserInfoExample()
{
if (GameTalk.IsMappedUserInfo() is true)
{
Debug.Log("UserInfo is mapped.");
}
else
{
Debug.Log("UserInfo is not mapped.");
}
}
GameTalk으로 매핑된 사용자 인증 정보를 해제합니다. GameTalk.MappingUserInfo API가 호출되기 전까지 모든 채팅 메시지를 수신할 수 없습니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void UnmappingUserInfo(GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void UnmappingUserInfoExample()
{
GameTalk.UnmappingUserInfo((error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("UnmappingUserInfo succeeded.");
}
else
{
Debug.Log(string.Format("UnmappingUserInfo failed. error:{0}", error));
}
});
}
유저 정보를 갱신합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void UpdateUserInfo(
GameTalkParams.UpdateUserInfo param,
GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkParams.UpdateUserInfo | 필수 | 설명 |
---|---|---|
languageCode | O | 콘솔에 등록된 다국어 번역 대상 코드 중 기준이 되는 언어 코드 |
nickname | X | 사용자 별명 |
콜백
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void UpdateUserInfoExample()
{
var param = new GameTalkParams.UpdateUserInfo
{
languageCode = LanguageCode.English,
nickname = "[NICKNAME]"
};
GameTalk.UpdateUserInfo(param, (error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("UpdateUserInfo succeeded.");
}
else
{
Debug.Log(string.Format("UpdateUserInfo failed. error:{0}", error));
}
});
}
GameTalk으로 매핑된 사용자의 모든 채널의 구독 정보를 해제합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void DeleteUserInfo(GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void DeleteUserInfoExample()
{
GameTalk.DeleteUserInfo((error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("DeleteUserInfo succeeded.");
}
else
{
Debug.Log(string.Format("DeleteUserInfo failed. error:{0}", error));
}
});
}
채널 정보를 조회합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void GetChannelList(
GameTalkParams.Channel.GetChannelList param,
GameTalkCallback.GameTalkDelegate<GameTalkData.Channel.GetChannelList> callback)
매개변수
GameTalkParams.Channel.GetChannelList | 필수 | 설명 |
---|---|---|
page | X | 페이지 인덱스 - 시작 값은 0 |
size | O | 페이지 사이즈 - 1부터 100 사이의 값 |
tagType | X | 태그 검색 조건(TagType.cs 참조) - Default: OR - OR: 선택한 채널 태그를 하나라도 포함한 채널을 검색 - AND: 선택한 채널 태그를 모두 포함한 채널을 검색 |
tagIdList | X | 검색 태그 리스트 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.Channel.GetChannelList | 설명 |
---|---|
pagingInfo | 페이징 정보 - first: 첫 페이지 여부 - last: 마지막 페이지 여부 - numberOfElements: 현재 페이지의 채널 수 - page: 페이지 인덱스 - size: 페이지 사이즈 - totalElements: 총 채널 수 - totalPages: 총 페이지 수 |
channelList | 채널 리스트 - id: 채널 아이디 - type: 채널 타입(ChannelType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - name: 채널 생성 시 입력한 채널명 - nickname: 채널 별칭 - subscriberCount: 채널 구독자 수 - lastMessageId: 마지막 메시지 아이디 - autoDelete: 채널 자동삭제 여부 - deleted: 채널 삭제상태(true면 삭제된 채널) - tagList: 태크 리스트 - id: 태그 아이디 - name: 태그 명 |
Example
public void GetChannelListExample()
{
var param = new GameTalkParams.Channel.GetChannelList
{
page = 0,
size = 10,
tagType = TagType.OR,
tagIdList = new List<int>() { 1, 2 }
};
GameTalk.Channel.GetChannelList(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("GetChannelList succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("GetChannelList failed. error:{0}", error));
}
});
}
채널을 구독합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void SubscribeChannel(
GameTalkParams.Channel.SubscribeChannel param,
GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkParams.Channel.SubscribeChannel | 필수 | 설명 |
---|---|---|
channelId | O | 채널 생성 시 부여된 고유 ID |
콜백
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void SubscribeChannelExample()
{
var param = new GameTalkParams.Channel.SubscribeChannel
{
channelId = "[CHANNEL_ID]"
};
GameTalk.Channel.SubscribeChannel(param, (error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("SubscribeChannel succeeded.");
}
else
{
Debug.Log(string.Format("SubscribeChannel failed. error:{0}", error));
}
});
}
구독 중인 채널을 해제합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void UnsubscribeChannel(
GameTalkParams.Channel.UnsubscribeChannel param,
GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkParams.Channel.UnsubscribeChannel | 필수 | 설명 |
---|---|---|
channelId | O | 채널 생성 시 부여된 고유 ID |
콜백
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void UnsubscribeChannelExample()
{
var param = new GameTalkParams.Channel.UnsubscribeChannel
{
channelId = "[CHANNEL_ID]"
};
GameTalk.Channel.UnsubscribeChannel(param, (error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log("UnsubscribeChannel succeeded.");
}
else
{
Debug.Log(string.Format("UnsubscribeChannel failed. error:{0}", error));
}
});
}
구독 중인 유저를 조회합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void GetSubscriber(
GameTalkParams.Channel.GetSubscriber param,
GameTalkCallback.GameTalkDelegate<GameTalkData.Channel.GetSubscriber> callback)
매개변수
GameTalkParams.Channel.GetSubscriber | 필수 | 설명 |
---|---|---|
channelId | O | 채널 생성 시 부여된 고유 ID |
page | X | 페이지 인덱스 - 시작 값은 0 |
size | O | 페이지 사이즈 - 1부터 100 사이의 값 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.Channel.GetSubscriber | 설명 |
---|---|
pagingInfo | 페이징 정보 - first: 첫 페이지 여부 - last: 마지막 페이지 여부 - numberOfElements: 현재 페이지의 채널 수 - page: 페이지 인덱스 - size: 페이지 사이즈 - totalElements: 총 채널 수 - totalPages: 총 페이지 수 |
userList | 사용자 리스트 - userId: 사용자 ID - nickname: 사용자 별명 - valid: 사용자 상태 - true: 정상 - false: 삭제된 유저 - regDate: 사용자 가입 일시 - languageCode: 사용자 언어 코드 - lastLoginDate: 마지막 로그인 일시 |
Example
public void GetSubscriberExample()
{
var param = new GameTalkParams.Channel.GetSubscriber
{
channelId = "[CHANNEL_ID]",
page = 0,
size = 10
};
GameTalk.Channel.GetSubscriber(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("GetSubscriber succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("GetSubscriber failed. error:{0}", error));
}
});
}
채널의 태그 리스트를 조회합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void GetTagList(
GameTalkParams.Channel.GetTagList param,
GameTalkCallback.GameTalkDelegate<GameTalkData.Channel.GetTagList> callback)
매개변수
GameTalkParams.Channel.GetTagList | 필수 | 설명 |
---|---|---|
page | X | 페이지 인덱스 - 시작 값은 0 |
size | O | 페이지 사이즈 - 1부터 100 사이의 값 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.Channel.GetTagList | 설명 |
---|---|
pagingInfo | 페이징 정보 - first: 첫 페이지 여부 - last: 마지막 페이지 여부 - numberOfElements: 현재 페이지의 채널 수 - page: 페이지 인덱스 - size: 페이지 사이즈 - totalElements: 총 채널 수 - totalPages: 총 페이지 수 |
tagList | 태그 리스트 - id: 태그 아이디 - name: 태그 명 |
Example
public void GetTagListExample()
{
var param = new GameTalkParams.Channel.GetTagList
{
page = 0,
size = 10
};
GameTalk.Channel.GetTagList(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("GetTagList succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("GetTagList failed. error:{0}", error));
}
});
}
구독 중인 채널을 조회합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void GetSubscribedChannelList(
GameTalkParams.Channel.GetSubscribedChannelList param,
GameTalkCallback.GameTalkDelegate<GameTalkData.Channel.GetSubscribedChannelList> callback)
매개변수
GameTalkParams.Channel.GetSubscribedChannelList | 필수 | 설명 |
---|---|---|
page | X | 페이지 인덱스 - 시작 값은 0 |
size | O | 페이지 사이즈 - 1부터 100 사이의 값 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.Channel.GetSubscribedChannelList | 설명 |
---|---|
pagingInfo | 페이징 정보 - first: 첫 페이지 여부 - last: 마지막 페이지 여부 - numberOfElements: 현재 페이지의 채널 수 - page: 페이지 인덱스 - size: 페이지 사이즈 - totalElements: 총 채널 수 - totalPages: 총 페이지 수 |
channelList | 채널 리스트 - id: 채널 아이디 - type: 채널 타입(ChannelType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - name: 채널 생성 시 입력한 채널명 - nickname: 채널 별칭 - subscriberCount: 채널 구독자 수 - lastMessageId: 마지막 메시지 아이디 - autoDelete: 채널 자동삭제 여부 - deleted: 채널 삭제상태(true면 삭제된 채널) - tagList: 태크 리스트 - id: 태그 아이디 - name: 태그 명 |
Example
public void GetSubscribedChannelListExample()
{
var param = new GameTalkParams.Channel.GetSubscribedChannelList
{
page = 0,
size = 10
};
GameTalk.Channel.GetSubscribedChannelList(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("GetSubscribedChannelList succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("GetSubscribedChannelList failed. error:{0}", error));
}
});
}
메시지를 전송합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void SendMessage(
GameTalkParams.Message.SendMessage param,
GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkParams.Message.SendMessage | 필수 | 설명 |
---|---|---|
channelId | O | 채널 생성 시 부여된 고유 ID |
contentType | O | 메시지 데이터 타입(MessageContentType.cs 참조) - TEXT: 텍스트 |
content | O | 메시지 |
콜백
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void SendMessageExample()
{
var param = new GameTalkParams.Message.SendMessage
{
channelId = "[CHANNEL_ID]",
contentType = MessageContentType.TEXT,
content = "[MESSAGE]"
};
GameTalk.Message.SendMessage(param, (error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("SendMessage succeeded."));
}
else
{
Debug.Log(string.Format("SendMessage failed. error:{0}", error));
}
});
}
최신 메시지를 조회합니다.
[주의]
최신 메시지를 포함하여, 최대 50개의 메시지를 조회할 수 있습니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void GetRecentlyMessage(
GameTalkParams.Message.GetRecentlyMessage param,
GameTalkCallback.GameTalkDelegate<GameTalkData.Message.GetRecentlyMessage> callback)
매개변수
GameTalkParams.Message.GetRecentlyMessage | 필수 | 설명 |
---|---|---|
channelId | O | 채널 생성 시 부여된 고유 ID |
count | O | 조회할 메시지 개수 - 1부터 50 사이의 값 |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.Message.GetRecentlyMessage | 설명 |
---|---|
count | 조회된 메시지 갯수 |
recentlyMessageList | 최근 메시지 리스트 - channelId: 채널 생성 시 부여된 고유 ID - channelType: 채널 타입(ChannelType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - messageId: 메시지 아이디 - messageType: 메시지 타입(MessageType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - ADMIN: 운영자 - ANNOUNCEMENT: 알림 메시지 - SYSTEM: 시스템 - contentType: 메시지 데이터 타입(MessageContentType.cs 참조) - TEXT: 텍스트 - senderType: 송신자 타입(MessageSenderType.cs 참조) - USER: 사용자 - ADMIN: 운영자 - ANNOUNCEMENT: 운영자 - SYSTEM: 시스템 - senderId: 송신자 아이디 - senderNickname: 송신자 닉네임 - languageCode: 메시지 언어 코드(LanguageCode.cs 참조) - content: 메시지 - state: 메시지 상태(MessageState.cs 참조) - NORMAL: 정상 메시지 - FILTER: 비속어로 인해 필터링 된 메시지 - deleted: 메시지 삭제 여부 - regDate: 메시지 전송 일시 |
Example
public void GetRecentlyMessageExample()
{
var param = new GameTalkParams.Message.GetRecentlyMessage
{
channelId = "[CHANNEL_ID]",
count = 10
};
GameTalk.Message.GetRecentlyMessage(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("GetRecentlyMessage succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("GetRecentlyMessage failed. error:{0}", error));
}
});
}
특정 메시지 ID를 기준으로 메시지를 조회합니다.
[주의]
특정 메시지 ID를 기준으로 최대 51개의 메시지를 조회할 수 있습니다. 매개변수 중 include의 값을 true로 설정할 경우, 기준이 되는 메시지를 포함하여 총 51개의 메시지가 조회됩니다.
prevCount와 nextCount의 합이 1이상 50이하가 되어야 합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void GetMessage(
GameTalkParams.Message.GetMessage param,
GameTalkCallback.GameTalkDelegate<GameTalkData.Message.GetMessage> callback)
매개변수
GameTalkParams.Message.GetMessage | 필수 | 설명 |
---|---|---|
channelId | O | 채널 생성 시 부여된 고유 ID |
messageId | O | 기준 메시지 아이디 |
prevCount | O | 기준 메시지로부터 조회할 이전 메시지 개수 - 0부터 50 사이의 값 |
nextCount | O | 기준 메시지로부터 조회할 다음 메시지 개수 - 0부터 50 사이의 값 |
include | X | 기준 메시지 포함 여부 - Default: false |
콜백
GameTalkCallback.GameTalkDelegate |
설명 |
---|---|
콜백 데이터 | |
error | 오류 객체 |
콜백 데이터
GameTalkData.Message.GetMessage | 설명 |
---|---|
count | 조회된 메시지 갯수 |
baseMessage | 기준 메시지(단일 객체) - channelId: 채널 생성 시 부여된 고유 ID - channelType: 채널 타입(ChannelType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - messageId: 메시지 아이디 - messageType: 메시지 타입(MessageType.cs 참조) - PUBLIC: 공개 - PRIVATE: 비공개 - ADMIN: 운영자 - ANNOUNCEMENT: 알림 메시지 - SYSTEM: 시스템 - contentType: 메시지 데이터 타입(MessageContentType.cs 참조) - TEXT: 텍스트 - senderType: 송신자 타입(MessageSenderType.cs 참조) - USER: 사용자 - ADMIN: 운영자 - ANNOUNCEMENT: 운영자 - SYSTEM: 시스템 - senderId: 송신자 아이디 - senderNickname: 송신자 닉네임 - languageCode: 메시지 언어 코드(LanguageCode.cs 참조) - content: 메시지 - state: 메시지 상태(MessageState.cs 참조) - NORMAL: 정상 메시지 - FILTER: 비속어로 인해 필터링 된 메시지 - deleted: 메시지 삭제 여부 - regDate: 메시지 전송 일시 |
prevMessageList | baseMessage와 동일한 구조의 객체가 리스트로 전달 |
nextMessageList | baseMessage와 동일한 구조의 객체가 리스트로 전달 |
Example
public void GetMessageExample()
{
var param = new GameTalkParams.Message.GetMessage
{
channelId = "[CHANNEL_ID]",
messageId = 123456,
prevCount = 10,
nextCount = 10,
include = true
};
GameTalk.Message.GetMessage(param, (data, error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("GetMessage succeeded. data:{0}", data));
}
else
{
Debug.Log(string.Format("GetMessage failed. error:{0}", error));
}
});
}
특정 메시지를 신고합니다.
API
Supported Platforms ■ UNITY_EDITOR ■ UNITY_ANDROID ■ UNITY_IOS
static void ReportMessage(
GameTalkParams.Message.ReportMessage param,
GameTalkCallback.ErrorDelegate callback)
매개변수
GameTalkParams.Message.ReportMessage | 필수 | 설명 |
---|---|---|
messageId | O | 신고 대상 메시지 아이디 |
messageLanguageCode | O | 신고 대상 메시지 언어 코드 |
channelId | O | 채널 생성 시 부여된 고유 ID |
reporterNickname | X | 신고자 별명 |
reason | X | 신고 사유 |
콜백
GameTalkCallback.ErrorDelegate | 설명 |
---|---|
error | 오류 객체 |
Example
public void ReportMessageExample()
{
var param = new GameTalkParams.Message.ReportMessage
{
channelId = "[CHANNEL_ID]",
messageLanguageCode = LanguageCode.Korean,
messageId = 123456,
reporterNickname = "[REPORTER_NICKNAME]",
reason = "[REASON]"
};
GameTalk.Message.ReportMessage(param, (error) =>
{
if (GameTalk.IsSucceeded(error) is true)
{
Debug.Log(string.Format("ReportMessage succeeded."));
}
else
{
Debug.Log(string.Format("ReportMessage failed. error:{0}", error));
}
});
}