전서구(信鸽) 푸시
Unity3D
개요
액세스 내비게이션
푸시 정보 발송
로컬 푸시 추가
태그 푸시
자주 묻는 질문
Android
개요
액세스 내비게이션
푸시 정보 발송
로컬 푸시 추가
태그 푸시
자주 묻는 질문
IOS
개요
액세스 내비게이션
푸시 정보 발송
로컬 푸시 추가
태그 푸시
자주 묻는 질문
기타
데이터 구조
시스템 도구
전서구(信鸽) 푸시 / Unity3D / 개요

개요

푸시 기능을 통해 게임을 실행하지 않은 상황에서 플레이어의 휴대전화기로 각종 휴일 이벤트, 기념 이벤트와 같은 게임 관련 정보를 푸시 할 수 있습니다. 푸시 효과는 다음 그림과 같습니다.

액세스 내비게이션

1 사전 요구 사항

1) 이미 MSDK Android 액세스 설정 모듈 설명에 따라 액세스 설정을 완료하고 푸시 스위치PUSH=true를 확보합니다.

2) MSDK iOS 푸시는 애플 APNS를 통해 구현하며, 각 작업 PM 또는 Tencent 측 인터페이스 인원이 Tencent 내부 네트워크 RDM, 페이잉(飞鹰_ 시스템 상에서 관련 인증서를 설정합니다#.

2 iOS 인증서 설정

인증서 설정은 iOS 클라이언트에 한정되며, Android 클라이언트는 이 항목을 무시해도 됩니다.

1 인증서 신청

2 SSL 인증서 작성

3 SSL 인증서 업로드

1 인증서 신청

제품은 RDM(Tencent 내 네트워크로, 작업 PM 또는 Tencent 측 인터페이스 인원의 조작 필요)에서 푸시를 요청해 인증서를 발송해야 합니다. 구체적인 내용은 RTX RDM 비서를 참조하십시오.

2 SSL 인증서 생성

1) RDM(Tencent 내 네트워크로, 작업 PM 또는 Tencent 측 인터페이스 인원의 조작 필요)에서 P12 인증서를 다운로드합니다. 구체적인 경로는 게임 제품 -> 배포 관리 -> 인증서 관리이며, MSDK를 예로 들면, 아래 그림과 같습니다.

2) 열린 인터페이스 안에서 배포 인증서 아래의 xxx_push.p12 파일을 다운로드하십시오.
3) 클라이언트를 열어 xxx_push.p12 파일이 있는 디렉토리에 진입해 다음 명령을 실행합니다.
openssl pkcs12 -in xxx_push.p12 -out xxx_push.pem -nodes

3 SSL 인증서 업로드

1) 페이잉 시스템에 진입(Tencent 내 네트워크로, 작업 PM 또는 Tencent 측 인터페이스 인원의 조작 필요)해 좌측 탐색창의 게임 관리 -> 모든 게임(권한이 없는 경우 RTX에서 marsrabelma 마텅(马腾)에게 연락해 개통 권한 요청)을 클릭하고, 자신의 게임을 검색합니다. 여기서 MSDK를 예로 들면, 다음 그림과 같습니다.

2) 위 그림 속 검색 버튼을 클릭해 게임 상세 페이지에 진입해 아래 그림에 표시된 정보를 찾습니다.

3) 위 그림 속 IOS 메시지 편집 버튼을 클릭해 iOS 정보 페이지에 진입합니다. 아래 그림과 같습니다.

2 단계 SSL 인증서 생성MakeSSLCertificate에서 생성한 pem 인증서를 생산환경으로 업로드하며, 비밀번호는 입력할 필요가 없습니다. 업로드 성공 후에 좌측 상단 코너의 게임 IOS 메시지 업데이트 버튼을 눌러 저장합니다. 개발 환경 인증서는 주의를 기울일 필요가 없으며, 인증서는 이미 완성되었습니다.#

iOS에 [푸시] 관련 코드를 추가합니다

OC인터페이스와 C++ 인터페이스중 택일.

다음 인터페이스는 OC 인터페이스입니다.

AppDelegate.mm에 [푸시] 관련 5종 방안을 추가하셔야 합니다.

1) 푸시 등록

서명 파일이 정확하게 설정되어야 푸시 등록이 완료됩니다. didFinishLaunchingWithOptions 메소드 안에서 MSDK의 WGRegisterAPNSPushNotification 메소드를 호출해 푸시 등록을 실시합니다. 코드 예시:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    …
    [MSDKXG WGRegisterAPNSPushNotification:launchOptions];
    …
}

2) 등록 성공

등록에 성공하면 게임에서 didRegisterForRemoteNotificationsWithDeviceToken 콜백 메소드를 수신할 수 있으며, 게임은 이 메소드 내에서 WGSuccessedRegisterdAPNSWithToken 메소드를 호출해 deviceToken을 MSDK에 보고합니다. 코드 예시:

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
  [MSDKXG WGSuccessedRegisterdAPNSWithToken:deviceToken];
}

3) 등록 실패

등록에 실패하면 게임에서 didFailToRegisterForRemoteNotificationsWithError 메소드 콜백을 수신할 수 있으며, 게임에서 WGFailedRegisteredAPNS 메소드를 호출해 푸시 등록 실패를 MSDK에 통지합니다. 예시 코드:

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
  [MSDKXG WGFailedRegisteredAPNS];
}

4) 정보 수신

푸시 등록 성공 후에, 애플리케이션에서 푸시 정보를 수신하고 didReceiveRemoteNotification 메소드에 진입할 수 있습니다. 게임이 이 메소드에서 WGReceivedMSGFromAPNSWithDict 메소드 호출을 필요로 할 경우, 정보를 MSDK에 푸시해 분석하고, 분석 결과를 게임에 통지합니다. 예시 코드:

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
  [MSDKXG WGReceivedMSGFromAPNSWithDict:userInfo];
}

5) badge 정리

애플리케이션이 applicationDidBecomeActive 안에서 WGCleanBadgeNumber 메소드를 호출해야 할 경우, 애플리케이션 바탕화면 아이콘 우측 상단 코너의 푸시 항목을 비웁니다. 예시 코드:

-(void)applicationDidBecomeActive:(UIApplication *)application
{
  [MSDKXG WGCleanBadgeNumber];
}

다음 인터페이스는 C++ 인터페이스입니다.

AppDelegate.mm에 [푸시] 관련 5종 방안을 추가하셔야 합니다.

1) 푸시 등록

기능 설명

메시지 푸시를 등록 시, 시그니처 파일을 정확하게 설정해야 등록 가능합니다. 게임은 didFinishLaunchingWithOptions방안에서 MSDK의 WGRegisterAPNSPushNotification방안을 호출하여 푸시를 등록해야 합니다.

인터페이스 선언
void WGRegisterAPNSPushNotification(unsigned char *launchOptions);
파라미터 설명
파라미터 명칭 유형 설명
launchOptions unsigned char* "-application:didFinishLaunchingWithOptions:"의 (NSDictionary *)launchOptions 파라미터를 json 스트링으로 컨버트함.

2)등록 통과

기능 설명

등록 통과시 게임은 didRegisterForRemoteNotificationsWithDeviceToken 콜백 방안을 받아보며, 게임은 해당 방안의 WGSuccessedRegisterdAPNSWithToken방안을 호출하여 deviceToken을 MSDK에 업로드해야 합니다.

인터페이스 선언
void WGSuccessedRegisterdAPNSWithToken(unsigned char *deviceToken);
파라미터 설명
파라미터 명칭 유형 설명
deviceToken unsigned char* "-application:didRegisterForRemoteNotificationsWithDeviceToken:"의 (NSData *)deviceToken 파라미터를 스트링으로 컨버트함.

3) 등록 실패

기능 설명

등록 실패시 게임은 didFailToRegisterForRemoteNotificationsWithError 방안을 받아 콜백합니다. 이때 게임은WGFailedRegisteredAPNS방안을 호출하여 MSDK에 푸시 등록 실패를 알려야 합니다.

인터페이스 선언
void WGFailedRegisteredAPNS();
파라미터 설명

없음

4) 메시지 받아보기

기능 설명

푸시 등록에 통과하면 애플리케이션은 푸시 메시지를 받아 didReceiveRemoteNotification방안을 적용합니다. 게임은 해당 방안에서 WGReceivedMSGFromAPNS방안을 호출하여 푸시 메시지를 MSDK에 업로드 및 파싱(parsing)후 파싱 결과를 게임에 알려야 합니다.

인터페이스 선언
void WGReceivedMSGFromAPNS(unsigned char *userInfo);
파라미터 설명
파라미터 명칭 유형 설명
userInfo unsigned char* "-application:didReceiveRemoteNotification:"中的(NSDictionary *)userInfo의파라미터를 json 스트링으로 컨버트함.

5) badge 삭제

기능 설명

애플리케이션은 applicationDidBecomeActive에서 WGCleanBadgeNumber방안을 호출하여 애플리케이션 바탕화면 아이콘의 오른쪽 윗측에 푸시한 내용을 삭제해야 합니다.

인터페이스 선언
void WGCleanBadgeNumber();
파라미터 설명

없음

푸시 정보 발송

페이잉(飞鹰) 시스템(Tencent 내부 네트워크의 경우, 작업 PM 또는 Tencent 측 인터페이스 인원이 조작)에 진입하여, 좌측 내비게이션창을 클릭해 MSDK 관리 -> 정보 관리(권한이 없는 경우 RTX에서 marsrabelma 마텅(马腾)에 연락해 권한을 획득할 수 있음)의 열린 화면 내에서 메시지(정식 환경) 버튼을 클릭해 정식 환경 하에서 +푸시 통지 버튼을 클릭해 푸시 정보를 클릭합니다. 아래 예시를 참조하십시오.

주의사항:

정보 푸시를 테스트할 때, 절대로 전체 푸시는 실행하지 마십시오. 하나의 계정 또는 여러 개의 계정을 이용해 테스트할 수 있으므로 전테 네트워크 사용자가 테스트 푸시 정보를 수신하도록 하지는 마십시오.

로컬 푸시 추가

원격 푸시 이외에도, 게임에서는 체력 회복 메시지 환경과 같은 로컬 정보 푸시도 가능합니다.

1 iOS 로컬 푸시

2 Android 로컬 푸시

3 로컬 푸시 제거

1 iOS 로컬 푸시

1) 기능 설명

로컬 푸시는 원격 푸시와 비교할 때, 원격 서버와의 인터랙션 없이 로컬에서 바로 수행할 수 있는 정보 알림 기능이며, 주로 체력 회복 메시지 등의 환경에서 사용됩니다.

2) 인터페이스 선언
long WGAddLocalNotification(LocalMessageIOS localMessage);
3) 파라미터 설명
파라미터 명칭 유형 설명
localMessage LocalMessageIOS 카테고리 이동 확인
4) 반환값

1 추가 성공, 0 추가 실패

5) 예시 코드
//현재 시간이 2015-09-17 17:00:00인 경우, 10초 후 푸시
LocalMessageIOS massage = new LocalMessageIOS();
message.fireDate = "2015-09-17 17:00:10";
message.alertBody = "Local Notification";
message.badge = 1;
message.alertAction = "Start";
WGPlatform.Instance.WGAddLocalNotification(massage);
6) 특수 설명

없음

7) 용어 해석

없음

2 Android 로컬 푸시

1) 기능 설명

로컬 푸시는 원격 푸시와 비교할 때, 원격 서버와의 인터랙션 없이 로컬에서 바로 수행할 수 있는 정보 알림 기능이며, 주로 체력 회복 메시지 등의 환경에서 사용됩니다.

2) 인터페이스 선언
long WGAddLocalNotification(LocalMessageAndroid msg);
3) 파라미터 설명
파라미터 명칭 유형 설명
msg LocalMessageAndroid 카테고리 이동 확인
4) 반환값

1 추가 성공, 0 추가 실패

5) 예시 코드
string[] times = Regex.Split ("20150917 17 00", " ");
LocalMessageAndroid msg = new LocalMessageAndroid();
msg.type = 1;
msg.action_type = 1;
msg.content = "전서구 로컬 푸시 테스트";
msg.title = "새 메시지가 있습니다.";
msg.date = times[0];
msg.hour = times[1];
msg.min = times[2];
WGPlatform.Instance.WGAddLocalNotification(msg);
6) 특수 설명

없음

7) 용어 해석

없음

3 로컬 푸시 제거

1) 기능 설명

로컬에서 추가했으나 아직 실행하지 않은 푸시 알림을 모두 게임에서 삭제할 수 있습니다.

2) 인터페이스 선언
void WGClearLocalNotifications();
3) 파라미터 설명

없음

4) 반환값

없음

5) 예시 코드
WGPlatform.Instance.WGClearLocalNotifications();
6) 특수 설명

없음

7) 용어 해석

없음

태그 푸시

게임은 사용자에 대해 성별, 연령, 학력, 취미 등과 같은 태그를 설정할 수 있으며, 별도로 SDK 내에는 사전 설정된 기본 태그가 있어, 푸시 시에 다양한 태그 내용에 따라 푸시를 실시합니다.

1 사전 설정 토큰

2 토큰 설정

3 토큰 삭제

4 태그 푸시 정보 발송

1 태그 프리셋

현재 전서구(信鸽)는 다음 3개 유형의 프리셋 태그를 제공하며, 게임에서는 다른 설정을 필요로 하지 않습니다.

지리적 위치(성 1급)
애플리케이션 버전 번호
유실된 사용자(3일 또는 7일)

2 태그 설정

1) 기능 설명

게임에서는 사용자에 대해서 다양한 태그를 설정할 수 있으며, 하나의 게임에 최대 10,000개의 태그 설정이 가능합니다. 각 사용자는 임의의 게임에서 최대 100개까지 태그를 설정할 수 있고, 태그 설정 시에는 태그 내에 공백이 있어서는 안 된다는 점에 주의해 주십시오.

2) 인터페이스 선언
void WGSetPushTag(string tag);
3) 파라미터 설명
파라미터 명칭 유형 설명
tag string null이 되거나 공백을 포함할 수 없음
4) 반환값

없음

5) 예시 코드:
WGPlatform.Instance.WGSetPushTag("Student");
6) 특수 설명

없음

7) 용어 해석

없음

3 태그 삭제

1) 기능 설명

설정된 사용자 태그를 삭제하면, 푸시 시에 해당 사용자는 이 태그 아래의 푸시 정보를 수신할 수 없습니다.

2) 인터페이스 선언
void WGDeletePushTag(string tag);
3) 파라미터 설명
파라미터 명칭 유형 설명
tag string null이 되거나 공백을 포함할 수 없음
4) 반환값

없음

5) 예시 코드
WGPlatform.Instance.WGDeletePushTag("Student");
6) 특수 설명

없음

7) 용어 해석

없음

4 태그 푸시 정보 발송

태그 푸시 정보 발송은 푸시 정보 발송과 마찬가지로, 푸시 정보 추가 시에 다음과 같이 맞춤형 푸시 발송 그룹 범위를 선택해야 합니다.

자주 묻는 질문