Hive에서는 Facebook , Google+, 주소록을 통한 자동으로 Hive 친구 동기화가 이루어질 수 있다.

  • 가입 또는 로그인 단계에서 Facebook 및 Google+ 친구 중에 Hive에 가입하고 Facebook 및 Google+를 연동한 사용자들을 자동 Hive 친구 맺음
  • 주소록에 있는 정보를 Hive에 업로드하여 이미 자신의 핸드폰 번호를 등록한 Hive 사용자들 중에 매칭되는 것이 있다면 자동 Hive친구 맺음

이로써 맺어지는 친구 관계는 실제 지인 및 친구 관계와 거의 동일함

 

자동 주소록 동기화 (1.8.0+)

  • Hive 서버에서 받아오는 주소록 동기화 주기값을 받아온 후 해당 값보다 크거나 같은 경우와 MDN 있는 상태일 경우 Hive 서버로 클라이언트 내 주소록을 전송
  • 현재 주소록 동기화 주기는 로그인 총 Count 30회로 설정 됨. (30회 달성 리셋 후 다시 카운트 체크)
  • 로그인에 성공 했을 시에만 해당 과정이 진행되며 주소록 전송 성공시 로컬에 저장된 로그인 Count는 리셋
  • 연동 가능 조건
    1) 단 한 번이라도 주소록 연동을 했고, DB에 MDN 정보가 있고, 각 OS별 퍼미션 권한 수락을 한 경우
    2) IOS, Android 모두 Permission 수락을 했을 경우에만 연동
  • IOS : 전화 인증 Y + 주소록 접근 권한 Y
  • Android : Android 6.0 (폰 퍼미션 수락 Y + 주소록 퍼미션 수락 Y)
    Android 6.0 외 (폰 퍼미션 수락 Y)

  • 연동 불가 조건
    1) 게스트 회원일 경우 스킵
    2) IOS, Android 모두 Permission 권한이 없으면 자동 연동 불가

  • 기타
    웰컴 플로우, 프로필 주소록 연동 버튼, 친구 관리 주소록 연동 버튼 부분에는 적용 될 필요 없음
    (로그인 완료시에만 체크)

Hive 친구 초대 진행 프로세스

Hive 친구에게 초대 메시지는 기본적으로 Hive 상에 친구관계인 유저에게만 메시지 및 초대 메시지를 보낼 수 있다.

  • “game”: Hive 친구이면서 게임을 하는 친구
  • “other”: Hive 친구이면서 게임을 하지 않는 친구
  • “all”, N/A: 전체 Hive 친구
게임 친구를 Hive 친구와 연동하는 사례 소개
  • 게임 서버 내 Hive 유저를 Base로 추천 친구 리스트를 구성하여 게임 내 친구 리스트를 따로 구성
    (예: 서머너즈 워)
  • Hive 친구 중 같은 게임을 하는 Hive 친구 리스트를 바탕으로 그 친구 중 게임 내 친구 리스트를 따로 구성
    (예: 홈런배틀 3D)
  • Hive 친구 중 함께 해당 게임을 하는 친구 리스트를 그대로 게임 내 친구 리스트로 사용
    (예: 피싱, 골프스타, 아임히어로)

Hive 도입 전에 컴투스 허브로 가입한 유저는 vid가 0으로 내려오기 때문에 vid가 0인 경우 arg[“uid”]에 uid 값을 세팅해야 한다.

Hive 친구초대 도식도

 

C2SModuleSns_Friends

친구 정보를 요청한다.(Hive 친구 초대 하기 관련된 내용을 빨간색으로 표시)
페이스북으로 나를 초대한 유저의 정보를 얻어올 수 있다.

Request
argument name type desc platform 비고
 type  string “game”                 : 게임 친구를 요청
“other”                  : 게임 하지않는 친구를 요청
“all”                       : 전체 친구를 요청
N/A                       : 전체 친구를 요청
“receivedInvite”: service가 “facebook” 일 경우에만
해당. 추가로 전달 할 경우 해당 게임
에서 나를 초대한 친구 리스트
정보 목록. (1.3.0+)
“friendsList”      : service가 facebook일 경우에만
해당. 해당 게임을 하는 내 페이스북
친구 리스트 정보 목록 (1.10.3+)
all  
 service  string “facebook”    : 페이스북의 친구리스트를 요청
N/A                   : Hive 친구리스트를 요청
all
 limit  int type이 receivedInvite일 경우
초대한 친구 리스트를 받아올 갯수이다.
입력하지 않을 경우 가장 최근에 초대한 1명의 정보만
받아온다.
all  1.3.0+
Response

친구에 대해 요청한 정보를 받는다.

argument name type desc platform 비고
 service  string “facebook”
N/A
 all
 game  array  게임 친구 리스트  all
 other  array  게임하지 않는 친구 리스트  all
 service == “facebook” 일 경우
 receivedInvite  array  나를 초대한 페북 유저들  all  1.3.0+

array type for Hive game and other

argument name type desc platform 비고
 vid  string  로그인 센터 id, 게임 친구가 아닐 경우 vid = 0 all
 uid  string  Hive platform id all
 nickName  string  닉네임, Hive id all
 profileImageURL  string  프로필 이미지 다운로드 url all
 messageBlocked  bool  true : 메시지가 상대방에 의해 블럭되어 있음
 false : :메시지를 보낼 수 있는 상태
all
 isFacebook  bool  최초 친구 루트 : 페이스북 all 1.10.1+
 isHive  bool  최초 친구 루트 : Hive all 1.10.1+
 isGame  bool  최초 친구 루트 : 게임 all 1.10.1+
 isContact   bool  최초 친구 루트 : 주소록 all 1.10.1+

array type for list

argument name type desc platform 비고
 uid  string  Hive uid  all 1.10.3+
 vid  string  Hive vid  all  1.10.3+
 appScopedId string  facebook appScopedId  all 1.10.3+

array type for facebook receivedInvite

argument name type desc platform 비고
 message  string  초대 내용  all
 created_time  string  초대 보낸 시각(GMT yyyy-mm-d’T’HH:mm:ss+0000)  all
 application  dictionary  초대 받은 app정보  all
 to  dictionary  받은 유저 정보  all
 from  dictionary  초대를 보낸 친구의 정보  all

dictionary type for application

argument name type desc platform 비고
 name  string  어플리케이션 이름  all
 id  string  어플리케이션 FB Key  all

dictionary type for “to”

argument name type desc platform 비고
 name  string  나의 이름  all
 id  string  나의   appscope id  all

dictionary type for “from”

argument name type desc platform 비고
 name  string  초대를 보낸 친구의 이름  all
 id  string  초대를 보낸 친구의 appscope id  all
샘플 소스
Unity®

API Reference: C2SModule.Sns.Friends

  • public static bool C2SModule.Sns.Friends(C2SModule.Parameter arg, out C2SModule.Error error);
  • public static bool C2SModule.Sns.Friends(C2SModule.Parameter arg, out C2SModule.Error error,
    C2SModule.CompletionHandler completionHandler);

Unreal

API Reference: HiveSDKUESns_Friends

  • void HiveSDKUESns_Friends(FString fstrJson);

iOS

API Reference: C2SModuleSns Friends

  • +(BOOL)Friends:(id)arg error:(NSError**)error;
  • +(BOOL)Friends:(id)arg error:(NSError**)error completionHandler:(void(^)(NSDictionary *, NSError*))
    completionHandler;

Cocos2d-x

API Reference: C2SModuleSns_Friends

  • bool C2SModuleSns_Friends(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
    C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);

C2SModuleSns_Message

대상에게 Hive 메시지 발송(Hive 친구 초대 하기 관련된 내용을 빨간색으로 표시)

Request
argument name type desc platform 비고
Hive 유저 메시지
vid string,
string array
메시지를 받는 유저의 로그인 센터 아이디 all
uid string,
string array
게스트가가 아닌 유저의 platform id all
message string 메시지의 내용 all
imageURL string (Optional) 전송될 이미지의 url all
thumbnailURL string (Optional) (imageURL과 함께 입력) 썸네일의 url all
usePush bool true 일 경우 푸시를 발송한다. all
invite bool true 일 경우 초대 메시지를 전송한다.
(linkShare 보다 우선시 된다.)
all
linkShare bool true 일 경우 집객 초대 메세지를 전송한다.
(invite가 false거나 없을 때 적용된다.)
all 1.9.0+
linkShareURL string 집객 초대 URL
(Promotion_Acquisition의 콜백값 ‘inviteHivemsgLink‘)
all 1.9.0+
facebook 친구리스트 dialog 사용 시
service string “facebook” all 1.3.0+
type string “inviteDialog” 페이스 북 친구를 선택하는 다이얼 로그를 띄움 all 1.3.0+
message string 메시지 내용 all 1.3.0+
Response

메시지를 받는 유저의 정보를 받는다.

argument name type desc platform 비고
Hive 유저 메시지인 경우
vid string,
string array
메시지를 받는 유저의 vid all
uid string,
string array
메시지를 받는 유저의 uid all
facebook 유저 메시지인 경우
service string “facebook” all 1.3.0+
facebookId string,
string array
메시지를 받는 유저의 appscope id all 1.3.0+
샘플 코드
Unity®

API Reference: C2SModule.Sns.Message

  • public static bool C2SModule.Sns.Message(C2SModule.Parameter arg, out C2SModule.Error error);
  • public static bool C2SModule.Sns.Message(C2SModule.Parameter arg, out C2SModule.Error error,
    C2SModule.CompletionHandler completionHandler);

Unreal

API Reference: HiveSDKUESns_Message

  • void HiveSDKUESns_Message(FString fstrJson);

iOS

API Reference: C2SModuleSns Message

  • +(BOOL)Message:(id)arg error:(NSError**)error;
  • +(BOOL)Message:(id)arg error:(NSError**)error completionHandler:(void(^)(NSDictionary *, NSError*))
    completionHandler;

Cocos2d-x

API Reference: C2SModuleSns_Message

  • bool C2SModuleSns_Message(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
    C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);