이슈

  • 페이스북 초대 즉시 보상은 페이스북 정책 위반으로 모니터링 시 바로 API가 막힐 리스크 있음
  • 기존 초대 API 사용을 위해서는 Canvas URL을 등록하여야 하나, 현재 Canvas URL은 페이스북에서 지칭하는 Canvas URL이 아님
  • Hive SDK v1.3.0+ 에서는 페이스북 클라이언트 사이드 로그인을 적용해야 하며 페이스북 등록 설정 시 페이스북 캔버스를 등록 하면 안됨
  • 페이스북 캔버스 삭제되면서 페이스북 친구 초대 메세지는 모바일 웹 과 페이스북 앱에서만 확인 가능함
    (PC에서 확인 불가)

해결 방법

  • 게임에서 페이스북 친구 초대 시 바로 보상을 주는 기획의 변경 필요
  • 친구 초대 관련 API 를 페이스북 UI Dialog로 변경 구현
  • 백오피스 AppID 관리 메뉴를 통해 페북 클라이언트 로그인 여부를 on/off 할 수 있음

적용 버전
* Hive SDK v1.3.0 이상 페이스북 친구 초대 Dialog방식으로 변경

 

Facebook 친구초대 도식도

 

C2SModuleSns_Friends

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

Request
argument name type desc platform 비고
 type  string “game”          : 게임 친구를 요청
“other”           : 게임 하지않는 친구를 요청
“all”               : 전체 친구를 요청
N/A               : 전체 친구를 요청
“friendsList”    : facebook 친구이면서 해당 게임을 하는
Hive 유저 정보 (1.10.2b+)

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

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

argument type type desc platform 비고
 service  string  “facebook”
N/A
 all
 type string “game”
“other”
“all”
N/A
“friendsList”   (1.10.3+)
“receivedInvite” 
all
 game  array  게임 친구 리스트
 other  array  게임하지 않는 친구 리스트
 service == “facebook” && type == “receivedInvite”
 receivedInvite  array  나를 초대한 페북 유저들  all  1.3.0+
 service == “facebook” && type == “friendsList”
list  array facebook 친구이면서 해당 게임을 하는 Hive 유저 정보 리스트 1.10.2b+

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+
fbUserName  string  facebook 유저 이름  all 1.11.3+
fbProfileImageURL  string  facebook Profile 이미지 URL  all 1.11.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

대상에게 메시지 발송
(페이스북 친구 초대 하기 관련된 내용을 빨간색으로 표시) 를 발송한다.

Request
argument name type desc platform 비고
Hive 유저 메시지
vid string,
string array
메시지를 받는 유저의 로그인 센터 아이디 all
uid string,
string array
guest가 아닌 유저의 platform id all
message string 메시지의 내용 all
imageURL string 전송될 이미지의 url all
thumbnailURL string 썸네일의 url all
usePush bool true 일 경우 푸시를 발송한다. all
invite bool true 일 경우 초대 메시지를 전송한다. 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);

C2SModuleSns_User

Hive 로그인한 사용자의 정보를 요청 한다.
또는 페이스북 관련된 정보를 요청 한다.
( type == “facebook” 일때 페이북 로그인이 안되었을 경우 페이스북 로그인을 띄운다.)
(facebook 관련된 내용을 빨간색으로 표시)

Request
argument name type desc platform 비고
Hive 정보 요청
 vid  string,
string array
 vid 대상의 정보를 요청
N/A : 자신의 정보를 요청
 all
facebook 본인의 정보 정보 요청
 type  string  “facebook”   all  1.3.0+
facebook appscope Id의 User Profile Image 요청
 type string  “facebook”  all 1.3.0+
 facebookId  string   facebook App Stored Id 입력 할 경우 해당 id  all  1.3.0+
Response

요청한 Hive 로그인 혹은 페이스북 관련 유저의 정보를 전달 받는다.

argument name type desc platform 비고
 Hive 유저 정보 요청 (service = null)
 list  array  vid로 요청 했을때 유저들의 정보를 저장한 배열  all
 자신의 페이스북 유저 정보 요청 (service = “facebook”)
 service  string  “facebook” : 페이스북 본인의 정보를 요청과
페이스북 프로필 이미지를 얻을 경우
 all 1.3.0+
 uid  string   facebook App Scope ID  all  1.3.0+
 e-mail  string  이메일  all  1.3.0+
 gender  string  성별  all  1.3.0+
 language  string  언어  all  1.3.0+
 country  string  국가코드  all  1.3.0+
 username  string  유저 이름  all  1.3.0+
 second_email  string  보조 이메일  all  1.3.0+
 bio  string  null  all  1.3.0+
 페이스북 프로필 이미지 URL 요청 (service = “facebook” 이고 facebookId = facebook App Scope ID)
 service  string  “facebook” : 페이스북 본인의 정보를 요청과
                       페이스북 프로필 이미지를 얻을 경우
 all 1.3.0+
 url  string  페이스북 프로필 이미지 url  all  1.3.0+

array type for list

argument name type desc platform 비고
 vid  string  로그인 센터 아이디  all
 uid  string  게스트가 아닌 유저의 platform id  all
 nickName  string  닉네임 (Hive id)  all
 profileImageURL  string  프로필 이미지 링크  all
 alias  string  (optional) 개별 사용자가 설정한 이름  all
 country  string  (optional) 유저의 국가 정보 withhive
 birthday  string  (optional) 생년월일 withhive
 gender  string  (optional) 성별 withhive
 comment  string  (optional) 오늘의 한마디 withhive
 e-mail  string  (optional) 이메일 withhive
 facebookId  string  (optional) 페이스북 아이디 withhive  
 newMessageCount  32bit
signed
 (optional) 자신의 정보일때만 데이터가 존재함, 받은 메시지의 개수 withhive
 newFriendCount  32bit
signed
 (optional) 자신의 정보일때만 데이터가 존재함, 새로 수락된 친구의 카운트 withhive
 newRequestCount  32bit
signed
 (optional) 자신의 정보일때만 데이터가 존재함, 받은 친구 요청 카운트 withhive
샘플 소스
Unity®

API Reference: C2SModule.Sns.User

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

Unreal

API Reference: HiveSDKUESns_User

  • void HiveSDKUESns_User(FString fstrJson);

iOS

API Reference: C2SModuleSns User

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

Cocos2d-x

API Reference: C2SModuleSns_User

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

C2SModuleSns_Session

  1. 로그인 센터 로그인 세션 정보
  2. 페이스북 로그인 여부
    (페이스북 관련된 내용을 빨간색으로 표시)
Request
argument name type desc platform 비고
service string NA : Hive 로그인센터 세션키 요청
“facebook”  : 페이스북 로그인 여부 요청 (1.3.0+)
all
Response

Hive 로그인 센터 세션키 혹은 페이스북 로그인 여부

argument name type desc platform 비고
sessionToken string service=NA일 때 Hive 로그인 센터 세션키값 all
isAuthorized bool service=facebook일 때 페이스북 로그인 여부
(iOS의 경우 is_authorized로 나타난다.)
all 1.3.0+
샘플 코드
Unity®

API Reference: C2SModule.Sns.Session

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

Unreal

API Reference: HiveSDKUESns_Session

  • void HiveSDKUESns_Session(FString fstrJson);

iOS

API Reference: C2SModuleSns Session

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

Cocos2d-x

API Reference: C2SModuleSns_Session

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